Исключение субдомена из правил .htaccess mod_rewrite? - PullRequest
10 голосов
/ 09 декабря 2010

Я не слишком знаком с файлами .htaccess и пытаюсь исключить поддомен (что-то вроде dev.example.com) из следующего правила перезаписи, которое уже установлено:

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

Это правило запрещает кому-либо просто вводить example.com или http://example.com и вызывает желаемое представление URL, http://www.example.com.

Я пробовал несколько вариантов исключения субдомена из этого правила перезаписи, но безрезультатно. Каждый из каталогов на сайте имеет свой собственный файл .htaccess, но, похоже, этот файл все еще имеет приоритет. Есть идеи? Спасибо!

Ответы [ 3 ]

14 голосов
/ 09 декабря 2010

Существующее правило уже исключает поддомен. Вам просто нужно добавить новое условие:

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

Вы также можете избавиться от регулярных выражений:

RewriteEngine On
RewriteCond %{HTTP_HOST} !=www.example.com [NC]
RewriteCond %{HTTP_HOST} !=dev.example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

Синтаксис можно найти на http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#rewritecond

3 голосов
/ 09 декабря 2010
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(dev|www)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
3 голосов
/ 09 декабря 2010

Я не уверен, что это подойдет вам, но рекомендуется использовать конфигурацию виртуальных хостов apache вместо файлов .htaccess.В этом случае для перенаправления без www -> www я обычно использую что-то вроде:

<VirtualHost *:80>
    ServerName  example.com
    RedirectMatch permanent ^(.*) http://www.example.com$1
</VirtualHost>

Это обычно безопаснее, чем правило mod_rewrite.

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