删除通配符子域,但不删除.htaccess的现有子域

时间:2011-12-23 23:08:43

标签: .htaccess redirect wildcard subdomain

您好!

我正在尝试为通配符子域设置我的.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重定向btw:Optimize htaccess Wildcard Subdomain Code

现在,我想要的是要删除的所有不存在的子域以及存在的子域(例如“blog.domain1.co.cc”)。

我希望有人可以帮助我。谢谢!

2 个答案:

答案 0 :(得分:1)

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]

答案 1 :(得分:0)

尝试将以下内容添加到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]