2013-07-15 4 views

ответ

1

Хотя ваш код может работать нормально, но я бы рекомендовал использовать %{HTTP_HOST} вместо %{SERVER_NAME}. Пожалуйста, поймите разницу между двумя переменными. %{SERVER_NAME} - это имя сервера, настроенного в вашем конфигураторе Apache, но позже одно имя домена, полученное в реальном времени в HTTP-запросе. Таким образом, вместо вашего использования кода это:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTPS} Off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Чтобы исключить выше правило для конкретного поддомена использования что-то вроде этого кода:

RewriteCond %{HTTP_HOST} !^sub\.domain\.com$ [NC] 
RewriteCond %{HTTPS} Off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
0

Да, это сработает.

Важно, чтобы правило было до любых правил маршрутизации, которые у вас могут быть, и что никакие другие правила не перенаправляются на http://.

+0

Спасибо! Если бы я хотел перенаправить весь сайт, кроме одного поддомена, как бы я это сделал? –

Смежные вопросы