是我的.htaccess正确的非www到www并强制https?

时间:2015-01-27 14:00:50

标签: .htaccess

我们正在切换到HTTPS。

我们当前的.htaccess文件具有以下代码以强制非www到www:

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

现在,对于HTTPS,这是我建议的补充:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

我的问题是 - 如何合并 - 或合并 - 非www到www和HTTPS?或者我会按上述顺序保留订单吗?

感谢。

PS我已经研究了这个,但我似乎没有找到任何简洁的答案......

1 个答案:

答案 0 :(得分:2)

您可以使用:

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

或没有域名:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

我建议你使用第一个。如果表明域名不是问题。