Сила "www."через .htaccess - PullRequest
4 голосов
/ 05 февраля 2011

Я хочу заставить "www." в моих URL-адресах (например, http://domain.com становится http://www.domain.com). Однако я не хочу, чтобы это было принудительно для URL-адресов, которые уже имеют поддомен (например, http://images.domain.com НЕ должно становиться http://www.images.domain.com). Следующий фрагмент, который я нашел в сети, выполняет последнее:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

Что мне нужно сделать, чтобы это сработало для меня? Спасибо.

1 Ответ

5 голосов
/ 05 февраля 2011

Простой Правила ниже действуют www, за исключением поддоменов.

RewriteCond %{HTTP_HOST} =name.domain [NC]
RewriteRule ^(.*)$ http://www.name.domain/$1 [R=301,L]

Отредактируйте и вставьте его, перезапустите apache.

Объясните:

RewriteCond %{HTTP_HOST} =name.domain [NC] совпадать только тогда, когда кто-то вводит name.domain (имя вашего домена).

Когда типы subdomain.name.domain, RewriteCond имеет значение false и не перенаправляет. Ты понимаешь? В правиле, которое вы ранее разместили, вы подходите для! (Не) ^ (в начале) www и subdomain.name.domain удовлетворяет RewriteCond и является тем, что вам не нужно :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...