2013-06-02 3 views
6

В настоящее время у меня есть:Перенаправление основного домена, но не определенный субдомен .htaccess

Redirect 302/http://www.example.com 

Хотя я все еще хочу, чтобы это редирект произойдет, я не хочу, чтобы перенаправить их, если они идут сказать foo.mydomain.com или любому другие страницы в этом поддомене.

Как это сделать?

ответ

13

Чтобы быть более конкретным, вам необходимо использовать RewriteCond/RewriteRule, а не просто директиву Redirect. Сделайте отрицательный матч (!) за foo.mydomain.com и выполните переписывание. Вы можете указать несколько субдоменов с группой ИЛИ (foo|other1|other2)

RewriteEngine On 
# Redirect anything except foo.example.com, bar.example.com 
RewriteCond %{HTTP_HOST} !^(foo|bar)\.example\.com$ [NC] 
# Redirect to www.example.com, preserving the URI 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=302] 

Если вы просто хотите, чтобы перенаправлять в корень, а не прилагая весь URI через $1, использовать один и тот же RewriteCond и просто сделать:

# Match and redirect everything to the root of www.example.com 
RewriteRule ^. http://www.example.com/ [L,R=302] 
+0

Спасибо очень! :) – Brett

+0

Мне пришлось отредактировать 'RewriteRule' следующим образом, чтобы заставить его работать:' RewriteRule ^. * Http://www.example.com/ [L, R = 302] ' – Brett

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