在站点的所有页面上强制SSL

时间:2015-10-21 09:00:51

标签: .htaccess ssl

我为我的网站购买了EV Certificates,我试图在用户输入时强制使用HTTPS:

目前我的htaccess文件中包含此代码:

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

但是,它似乎没有正常工作。它只强制我的主页上的SSL,而不强制网站上的其他页面。

我做了一些研究,发现了这段代码:

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

我想知道这些是做同样的事吗?

1 个答案:

答案 0 :(得分:0)

重写规则按照它们编写的顺序进行评估。

RewriteRule A B
RewriteRule C D
RewriteRule E F

对于每个传入的HTTP请求,首先会将A重写为B,然后将C重写为D,然后E重写为F }。

如果任何规则以[L](“最后”)结尾,则表示如果[L]规则匹配,则应忽略以下所有规则。

在您的情况下,您有一些首先检查并适用的规则,因此不会评估您的HTTPS重定向。

首先提出这些基本规则。对于每个传入的HTTP请求,您想首先询问“我们说的是正确的协议吗?”并在必要时进行修复,然后再检查更深入的规则并进行内部重写。< / p>