我正在工作的一个网站需要从http重定向到https,我们安装了一个证书,并从www。到非www。因为我不是.htaccess中的明星,所以我在互联网上查找了正确的代码,发现了以下内容:
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ http://website.nl [L,NE,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://website.nl [L,NE,R=301]也尝试过
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://website.nl%{REQUEST_URI} [R=301,L,NE]它应该可以工作,www。对于非www https的工作,当我创建一个错误时,第二个语句会给我一个错误,但没有给我想要的结果。我通过一个在线测试仪进行了测试,测试结果显示这样应该没问题。我一直在寻找它的其他版本,我用来查看端口,添加了ssl检查,似乎什么都不起作用。我做错了什么?
发布于 2018-05-14 22:26:32
要将流量从HTTP转发到HTTPS,请使用以下命令:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?website\.com
RewriteRule ^(.*)$ https://www.website.com/$1 [R,L]我们检查请求是否正在访问端口80,然后检查要转发的域。如果域名是x的,那么我们将其转发给https://x/。域检查在域前缀下也有一个条件分组,以包括www. (如果它存在),这是通过使用?正则表达式完成的。因此,这两个域请求将导致相同的协议。
https://stackoverflow.com/questions/50332571
复制相似问题