我有一套mod_rewrite的要求,这是我的头。 任何提示/指针,将不胜感激:
域:
www.domain-europe.com www.domain.com
我可以做任何1和3或2和3这些工作,但不是所有三个在同一时间。
这是我尝试过的许多迭代之一:
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.domain-europe\.com$ [NC] RewriteRule (.*) http://www.domain.com/europe [R=301,L] RewriteCond %{HTTP_HOST} ^www\.domain-europe\.com/ [NC] RewriteRule (.*) http://www.domain.com$1 [R=301,L] RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/(.*) http://www.domain.com/$1 [L,R]
您的重写条件只匹配HTTP主机,而不是请求URI – 而您的重写规则(。*)匹配所有内容…
RewriteCond %{HTTP_HOST} ^www\.domain-europe\.com$ [NC] RewriteRule (.*) http://www.domain.com/europe [R=301,L]
无论是否被请求,都会在主机为www.domain-europe.com的任何时候匹配,或者/foo/bar/virus.exe被请求。
相反,也许尝试更类似于:
RewriteCond %{HTTP_HOST} ^(www\.)?domain-europe\.com$ [NC] RewriteRule ^/$ http://www.domain.com/europe [R=301,L] RewriteRule ^/(.+)$ http://www.domain.com$1 [R=301,L] RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^/(.*) http://www.domain.com/$1 [L,R]
你可能还需要调整一些。 我在确切的语义上有点生疏 – 但这至less应该指向正确的方向。
HTH