Apache重定向和削减问题

时间:2014-02-01 18:56:11

标签: apache .htaccess redirect

我有一个重写设置,通过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>

1 个答案:

答案 0 :(得分:1)

发生这种情况是因为在虚拟主机上下文中使用的URI具有前导斜杠,这与通过htaccess文件中的规则传递的URI不同。您需要将规则更改为:

RewriteRule ^/(.*)$ http://www.firstdomain.com/$1 [R=301,L]