我正在处理的网站需要从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检查,似乎没什么用。我做错了什么?
答案 0 :(得分:0)
要将流量从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.
(如果存在),这通过使用?
正则表达式来完成。因此,两个域请求都将产生相同的协议。