我为网站购买了EV Certificates
,并且每当用户键入以下内容时,我都试图强制使用HTTPS:
mycoolwebsite.com
www.mycoolwebsite.com
http://mycoolwebsite.com
http://www.mycoolwebsite.com
目前,我的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]
我想知道这些人在做同样的事情吗?
最佳答案
重写规则按照其编写顺序进行评估。
RewriteRule A B
RewriteRule C D
RewriteRule E F
对于每个传入的HTTP请求,这将首先将
A
重写为B
,然后将C
重写为D
,然后将E
重写为F
。如果任何规则以
[L]
(“ Last”)结尾,则意味着如果[L]
规则匹配,则所有后续规则都将被忽略。对于您的情况,您有一些此类规则会首先检查并适用,因此不会评估HTTPS重定向。
首先把这些基本规则。对于每个传入的HTTP请求,您首先要询问“我们说的是正确的协议吗?”并在必要时进行修复,然后再检查更深入的规则并进行内部重写。
关于.htaccess - 在网站的所有页面上强制使用SSL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33255053/