当前位置:  开发笔记 > 编程语言 > 正文

如何设置.htaccess将HTTP重定向到HTTPS等效?

如何解决《如何设置.htaccess将HTTP重定向到HTTPS等效?》经验,为你挑选了1个好方法。

我正在使用Dreamhost并拥有安全托管和安全证书.我正在尝试将纯HTTP站点重定向到HTTPS站点.这样做我有点困惑.

我想http://www.example.com/重定向到https://www.example.com/

我将什么文件放在哪个文件中?



1> JakeGould..:

这应该工作.当您指出.htaccess该概念与Apache重写规则相关时:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

只需将其放在您的.htaccess文件中,所有非HTTPS请求都将定向到HTTPS.

你可以测试这个的方法是这样使用curl; 当然更改http://www.example.com以匹配您的实际域名/主机名称:

curl -I -L http://www.example.com

-I标志告诉curl发送回标题和-L告诉curl跟随重定向.如果您.htaccess正确设置了该设置,那么您将看到第一跳到非HTTPS站点,然后通过.htaccess重写规则进行重定向管理- 将其发送到HTTPS站点上的下一个跃点.

301对302重定向.

关于服务器响应消息和潜在SEO内容的一个小注意事项:当您使用最终的Apache重写规则时,默认的服务器响应代码将是:

HTTP/1.1 302 Found

阿302的HTTP响应被认为是一个临时重定向.如果您绝对希望普通HTTP流量转到同一服务器上的HTTPS等效项,那么您应该发送301 HTTP响应,这是一个永久重定向.要使用该Apache重写规则发送301代码,只需调整最后一行,使其全部如下所示:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

在这之后,响应应该是:

HTTP/1.1 301 Moved Permanently

一切都应该是好的.但是 - 而不是跳过一个奇怪的兔子洞 - 谷歌似乎明白大多数人错误地发送302标题,当他们的意思是301,所以看起来 - 根据这篇文章 - 302重定向中的谷歌因素加上某种时间范围.如果你在一段时间内发送足够的302s,谷歌会推断这种变化是永久性的,并将302视为301.

有点混乱,但在一天结束时,如果你想重定向永久性,那么总是设置301响应标题,让每个人的生活更轻松.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有