如何编写 RewriteCond 和 RewriteRule 以将 url www 更改为 non-www 并将 http 更改为 https?
Posted
技术标签:
【中文标题】如何编写 RewriteCond 和 RewriteRule 以将 url www 更改为 non-www 并将 http 更改为 https?【英文标题】:How to write RewriteCond and RewriteRule for changing url www to non-www and http to https? 【发布时间】:2016-06-27 19:53:10 【问题描述】:在 Apache 的 httpd.conf 文件中,如何重写模块以使 url 的 www 为非 www 并强制 http 为 https? 当我在下面尝试时,它变成了无限重定向错误
RewriteCond %HTTP_HOST ^www.(.*)$
RewriteRule ^(.*)$ https://example.com$1
RewriteCond %HTTP_HOST ^example.com$
RewriteRule ^(.*)$ https://example.com$1
或
RewriteCond %HTTP_HOST ^www.(.*)$ [OR]
RewriteCond %HTTP_HOST ^example.com$
RewriteRule ^(.*)$ https://example.com$1
【问题讨论】:
【参考方案1】:要从 www/http 重定向到非 www/https,您可以使用:
RewriteEngine on
RewriteCond %HTTP_HOST ^www\. [OR]
RewriteCond %HTTPS off
RewriteRule ^(.*)$ https://example.com%REQUEST_URI [NC,L,R]
【讨论】:
我试过你的答案,它导致浏览器出现 ERR_TOO_MANY_REDIRECTS @Jaylee 你确定我的代码出现了这个错误吗?实际上我在我的 apache 上测试了这个,它工作正常并且没有重定向循环错误的机会。以上是关于如何编写 RewriteCond 和 RewriteRule 以将 url www 更改为 non-www 并将 http 更改为 https?的主要内容,如果未能解决你的问题,请参考以下文章
如何编写 RewriteCond 和 RewriteRule 以将 url www 更改为 non-www 并将 http 更改为 https?