为啥在通过 mod_rewrite 强制 HTTPS 时不发送 301 重定向?
Posted
技术标签:
【中文标题】为啥在通过 mod_rewrite 强制 HTTPS 时不发送 301 重定向?【英文标题】:Why not send a 301 redirect when forcing HTTPS by mod_rewrite?为什么在通过 mod_rewrite 强制 HTTPS 时不发送 301 重定向? 【发布时间】:2012-01-31 00:54:20 【问题描述】:网上有很多例子建议强制使用HTTPS。例如:
RewriteEngine On
RewriteCond %SERVER_PORT 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
我没有找到任何使用301 Moved Permanently
redirect 的示例。为什么不?
这不会避免对 HTTP 站点的进一步请求吗?以及指向 HTTP 站点的 Google 搜索结果?
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
为什么没人使用它?还是我只是忽略了使用它的人?
【问题讨论】:
【参考方案1】:[R]
标志将强制进行外部重定向,默认状态为 302(临时重新定位)。 AFAIK,您可以使用 [R=302,L]
将其设置为 301
我不知道您为什么在这种情况下不使用 301 而不是 302。
【讨论】:
感谢您的回答。但是,为什么人们不提出呢?根据各种来源,如果新位置是永久性的(在这种情况下就是这样),则应避免 302 重定向。 我同意,301 在这里更有意义。以上是关于为啥在通过 mod_rewrite 强制 HTTPS 时不发送 301 重定向?的主要内容,如果未能解决你的问题,请参考以下文章
使用 .htaccess 和 mod_rewrite 强制 SSL/https
使用 mod_rewrite 强制 SSL/HTTPS [重复]