当访问者访问.co.uk以自动重定向到.com时,我一直在尝试访问我的网站。以及如果他们去domain.com被带到www.domain.com
我的httpd.conf中有以下代码。它似乎与domain.com
合作www.domain.com
但不合domain.co.uk
或www.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]
答案 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]
vhost
或httpd.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标志对此没有帮助,因为它适用于字符串值,而不是变量名。