繁体   English   中英

在.htaccess中强制HTTPS和WWW

[英]Force HTTPS and WWW in .htaccess

我开始在此页面.htaccess上阅读有关类似主题的内容-如何强制使用“ www”。 以一种通用的方式? 解决方案不是,几乎是我要做什么。

问题:我需要用户使用HTTPS和WWW才能使我的应用程序正常运行。 但是,如果有人点击html链接,例如:

<a href="https://www.example.com">www.example.com</a>

用户将通过以下方式进入我的网站:

https://www.www.example.com/

这是我当前的.htaccess文件。

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} !=on

RewriteRule ^/?(.*) https://www.%{SERVER_NAME}/$1 [R=301,L]

</IfModule>

有什么方法可以检测到用户已经进入了WWW,还是有最佳实践来获得我想要的结果?

谢谢。

因为http -> https规则正在添加www\\.所以您会收到此行为www\\. 在目标URL中,而不检查URL是否已经以www开头。

您应该用此一条规则替换两条规则,此外,避免多次重定向:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM