规则不将.co.uk重定向到.com

时间:2011-11-14 15:56:23

标签: apache mod-rewrite url-rewriting

当访问者访问.co.uk以自动重定向到.com时,我一直在尝试访问我的网站。以及如果他们去domain.com被带到www.domain.com

我的httpd.conf中有以下代码。它似乎与domain.com合作www.domain.com但不合domain.co.ukwww.domain.co.uk合并www.domain.com

RewriteEngine on
RewriteBase /      
RewriteCond %{http_host} ^domain.com [NC,OR]
RewriteCond %{http_host} ^domain.co.uk [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC]

2 个答案:

答案 0 :(得分:2)

如果您的重写规则在htaccess文件中,这应该可行。如果它们位于vhost文件(或Apache httpd.conf本身)中,请尝试删除/

并尝试始终区分大小写(习惯了,因为大多数语言区分大小写,这是一个很好的习惯):


如果在.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com [NC,OR]
RewriteCond %{HTTP_HOST} domain.co.uk [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC]

如果在vhosthttpd.conf文件中:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com [NC,OR]
RewriteCond %{HTTP_HOST} domain.co.uk [NC]
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,NC]

请尝试使用RewriteLog指令:它可以帮助您找出这些问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

告诉我它是否有效。

答案 1 :(得分:0)

HTTP_HOST的名称区分大小写吗? RewriteCond documentation始终将其列为HTTP_HOST,而不是http_host。 NC标志对此没有帮助,因为它适用于字符串值,而不是变量名。