首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Htaccess将http重定向到https并将www重定向到非www不起作用

Htaccess将http重定向到https并将www重定向到非www不起作用
EN

Stack Overflow用户
提问于 2018-05-14 22:17:25
回答 1查看 109关注 0票数 0

我正在工作的一个网站需要从http重定向到https,我们安装了一个证书,并从www。到非www。因为我不是.htaccess中的明星,所以我在互联网上查找了正确的代码,发现了以下内容:

代码语言:javascript
运行
复制
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ http://website.nl [L,NE,R=301]

RewriteCond %{HTTPS} off
RewriteRule ^ https://website.nl [L,NE,R=301]

也尝试过

代码语言:javascript
运行
复制
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检查,似乎什么都不起作用。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-05-14 22:26:32

要将流量从HTTP转发到HTTPS,请使用以下命令:

代码语言:javascript
运行
复制
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://www.regular-expressions.info/conditional.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50332571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档