我为网站购买了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/

10-11 06:34