我有一个重写设置,通过301将第二个域指向第一个域。但是,每当我在浏览器中访问seconddomain.com或www.seconddomain.com时,我最终都会在http://www.firstdomain.com//
注意两个斜杠?!?快把我逼疯了。我怎么能避免这个?
<VirtualHost *:80>
ServerName www.firstdomain.com
ServerAlias firstdomain.com *.firstdomain.com
DocumentRoot /opt/firstdomain.com/static
<Directory /opt/firstdomain.com/static>
Allow from all
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.seconddomain.com
ServerAlias seconddomain.com *.seconddomain.com
RewriteEngine On
RewriteRule ^(.*)$ http://www.firstdomain.com/$1 [R=301,L]
</VirtualHost>
答案 0 :(得分:1)
发生这种情况是因为在虚拟主机上下文中使用的URI具有前导斜杠,这与通过htaccess文件中的规则传递的URI不同。您需要将规则更改为:
RewriteRule ^/(.*)$ http://www.firstdomain.com/$1 [R=301,L]