.htaccess: переписать, только если нет подкаталога - PullRequest
1 голос
/ 23 декабря 2010

С этими правилами:

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

Вы можете сделать так, чтобы каждый URL на сайте перенаправлялся на URL плюс поддомен www. в начале.

Проблема, с которой я столкнулся, заключается в том, что она вызывает у меня некоторые проблемы с другими поддоменами, то есть я бы не хотел, чтобы blog.domain.com также перенаправлялся ко мне.

Так есть ли способ сделать общее правило, чтобы избежать перенаправления всего, что уже имеет поддомен?

Заранее спасибо !!


Надеюсь, вопрос достаточно ясен !! Если вам нужны какие-либо разъяснения, пожалуйста, попросите об этом!

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

да - ваше регулярное выражение для RewriteCond соответствует "всему, что не является www.domain.com". Если я правильно понимаю, вы хотите соответствовать только domain.com.

Как это:

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

Теперь, если кто-то использует domain.com, он будет перенаправлен. Для запросов, которые имеют что-либо отличное , чем domain.com, они не будут перенаправлены. Это включает в себя www.domain.com, а также blog.domain.com, а также dns2.domain.com.

0 голосов
/ 24 декабря 2010

Спасибо хаха за ведение меня в правильном направлении.

Мне удалось сделать это через cPanel, я перенаправил все не www.с www.поддомен с подстановочными знаками.

Извините, не знал, что это можно сделать специально.

Спасибо за все ответы и комментарии !!

...