301重写重定向会导致双重斜杠

时间:2015-03-19 11:24:37

标签: apache .htaccess redirect https

我的标准域名为https://example.com/,因此其他所有内容都应该重定向到那里。

我使用此代码:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://example.com/%{REQUEST_URI} [R=301,L,NE]
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
</IfModule>

不幸的是,当我转到http://example.com/http://www.example.com/时,我会被重定向到https://example.com//

如何删除双斜线?

1 个答案:

答案 0 :(得分:2)

删除目标中/之前的%{REQUEST_URI}

您实际上可以在一个规则中执行此操作:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www\. [NC]
    RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L,NE]
</IfModule>

在新浏览器中测试或清除浏览器缓存。