1

我有一个主域 - 我们称之为xyz.com。我还有其他几个二级域,例如abc.com def.com、ghi.com等。这些域都具有相同的内容。

我正在尝试在 IIRF 中进行 URL 重定向,该重定向将采用任何辅助域,并将其替换为我的主 xyz 域。

这是我得到的最接近的。

RewriteCond  %{HTTP_HOST}  ^(?!(.*)\.xyz\.com)$
RedirectRule ^/(.*)$        http://*1.xyz.com/$1   

问题#1:如果我导航到123.abc.com,我会被带到.xyz.com(我丢失了我的子域,我想我可以用 '*1' 检索它)。

问题 #2:即使我去www.xyz.com,我也会被重定向到.xyz.com这条规则显然应该忽略任何xyz.com

4

2 回答 2

1

这应该工作

#not in main.com
RewriteCond %{HTTP_HOST} !.*main.com [NC]
#get the subdomain as a backreference to use in the RewriteRule
RewriteCond %{HTTP_HOST} (.*)[a-z0-9]+\.[a-z]+$ [NC]
#Rewrite the new URL
RewriteRule ^(.*)$ http://%1main.com/$1 [NC,QSA,L]

不过,我不是最优秀的正则表达式大师,所以可能会有一些边界情况会提供意想不到的结果

于 2010-09-15T06:11:07.437 回答
0

我花了一个星期,但我明白了。

##### handles 3-part domains like "xxx.yyy.com"
    RewriteCond %{HTTP_HOST} ^(.*)\.(?!xyz).*\.com$        
    RedirectRule ^/(.*)$ http://*1.xyz.com/$1 [R=301]

##### handles 2-part domains like "yyy.com"      
    RewriteCond %{HTTP_HOST} ^(?!xyz).*\.com$        
    RedirectRule ^/(.*)$ http://xyz.com/$1 [R=301]
于 2010-09-20T12:50:34.087 回答