将HTTPS重定向与WWW重定向合并

时间:2015-08-25 13:21:07

标签: apache .htaccess mod-rewrite redirect ssl

我目前在.htaccess文件中有此内容

 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
 RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

这可确保将所有http://www.example.com重定向到http://example.com

我想实现一个SSL证书,我发现这是我必须使用的重写规则,http才能重定向到https。

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

如何将HTTPS条件与我当前的条件合并,以便

http://www.example.com重定向到https://example.com

http://example.com重定向到https://example.com

如果无法合并,我可以一个接一个地拥有这两个代码片段吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

是的,你可以一个接一个地使用它们。我还会通过让您的第一组规则直接将其发送到HTTPS来为用户保存重定向。

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]