重定向到 https 不适用于 www
Posted
技术标签:
【中文标题】重定向到 https 不适用于 www【英文标题】:Redirect to https not working with www 【发布时间】:2018-05-24 05:20:29 【问题描述】:我有一个名为 example.com
的域。
我想始终重定向到https://www.example.com
(https
AND www
)。
意思是:我需要重定向
https://example.com
http://www.example.com
http://example.com
到
https://www.example.com
这是我目前的代码:
RewriteCond %HTTP_HOST ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
RewriteCond %HTTP_HOST ^(www\.)?example\.com$ [NC]
RewriteRule !^web/ /web%REQUEST_URI [L,NC]
这适用于:
https://example.com
http://example.com
但它不适用于:
http://www.example.com
我已经为此工作了一整天(这里是下午 4 点),但没有成功。
为什么?谁能给我一个提示?我做错了什么?
【问题讨论】:
【参考方案1】:您使用的规则仅将非 www 域重定向到 www 而不检查 https 标头。
你可以用这个:
RewriteEngine on
#http to https with www
RewriteCond %HTTPS off [OR]
RewriteCond %HTTP_HOST !^www\.
RewriteRule ^ https://www.example.com%REQUEST_URI [NC,L,R]
#other rules
RewriteCond %HTTP_HOST ^(www\.)?example\.com$ [NC]
RewriteRule !^web/ /web%REQUEST_URI [L,NC]
这会将http
或non-www
重定向到https://www
在测试之前清除浏览器缓存。
【讨论】:
以上是关于重定向到 https 不适用于 www的主要内容,如果未能解决你的问题,请参考以下文章
在 Codeigniter 中将 http 重定向到 https
Rails 应用程序 HTTP 到 HTTPS 重定向不适用于公开的 API