Удалите подстановочные субдомены, но не существующие с помощью .htaccess - PullRequest
2 голосов
/ 24 декабря 2011

Привет!

Я пытаюсь настроить мой файл .htaccess для подстановочных субдоменов, но я действительно понятия не имею, как это сделать.

У меня есть «domain2», указывающий на «domain1» как псевдоним, который отлично работает, вот код, который я использую:

RewriteEngine On

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

RewriteCond %{HTTP_HOST} ^(.*\.?)domain2.co\.cc$  [NC]
RewriteRule (.*) http://%1domain1.co.cc/$1 [R=301,L]

Я нашел здесь перенаправление www, кстати: Оптимизация кода поддомена htaccess подстановочного знака

Теперь мне нужно удалить все несуществующие субдомены и те, которые существуют (например, «blog.domain1.co.cc», чтобы остаться)..

Надеюсь, кто-нибудь может мне помочь с этим. Спасибо!

Ответы [ 2 ]

1 голос
/ 24 декабря 2011
RewriteEngine On

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

#don't redirect blog.example.com, forum.example.com and example.com
RewriteCond %{HTTP_HOST} ^((blog|forum)\.)?example\.com$
RewriteRule .* - [L]

#redirect the rest (including www.) to example.com
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
0 голосов
/ 27 декабря 2011

Попробуйте добавить следующее в ваш файл htaccess.

#if these lines already exist, skip them
RewriteEngine On
RewriteBase /

#if its not www or discussions subdomain
RewriteCond %{HTTP_HOST} !^(www|discussions)\.domain1\.co\.cc$ [NC]
#redirect to www domain
RewriteRule .* http://www.domain1.co.cc%{REQUEST_URI} [R=301,L]

По следующему вопросу

перенаправляет субдомены и подкаталоги в другой домен, вот так: forum.old.com / thread / 12038213 -> forum.new.com/thread/12038213

Попробуйте

RewriteEngine On
RewriteBase /

#if domain is old.com
RewriteCond %{HTTP_HOST} ^(.+)\.old\.com$ [NC]
#redirect to new.com
RewriteRule .* http://%1.new.com%{REQUEST_URI} [L,R=301]
...