2015-03-19 96 views
1

我的标准域是https://example.com/,所以其他所有内容都应该重定向到那里。301重写重定向导致双重斜杠

我用这个代码:

<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//

任何想法如何删除双斜杠?

回答

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> 

测试这个新的浏览器或清除浏览器缓存。