mod_rewrite и не ставьте www. если поддомен уже существует - PullRequest
0 голосов
/ 29 июля 2011

Мои текущие настройки .htaccess:

RewriteCond %{HTTPS} (on)?
RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteRule .? http(?%1s)://www.%2%3 [R=301,L]

Если у меня есть поддомен m.mysite.com, как мне пропустить добавление www. перед этим? Приведенное выше правило устанавливает мой URL на www.m.mysite.com, когда я хочу только m.mysite.com.

Я поместил это правило в свой .htaccess, потому что мне нужно mysite.com для перенаправления на www.mysite.com.

Спасибо за любую помощь. Я отправлю ответ, если найду его.

Ответы [ 2 ]

0 голосов
/ 29 июля 2011

Попробуйте это правило:

RewriteCond %{HTTP_HOST} =mysite.com [NC]
RewriteCond %{HTTPS} (on)?
RewriteRule .* http(?%1s)://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Основное доменное имя будет жестко задано (упомянуто только один раз), но это лучший способ.

0 голосов
/ 29 июля 2011

Следующее изменение в строке 2 должно работать. (Непроверенные)

RewriteCond %{HTTPS} (on)?

RewriteCond %{HTTP:Host} ^([^.]+\.[^.]+)$ [NC]

RewriteCond %{REQUEST_URI} (.+)

RewriteRule .? http(?%1s)://www.%2%3 [R=301,L]

Редактировать: (объяснение) этот код добавляет www только в том случае, если в хосте есть только 1 точка. больше чем 1 точка будет означать существование субдомена

...