这是关于在 Apache 中从 http 重定向到 https的规范问题
有关的:
我有一个 Appache Web 服务器,它同时提供http://example.com/
和https://example.com/
. 我想将所有 http 请求重定向到 https。目前我正在使用此.htaccess
规则将 http 请求重定向到 https。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
它按预期工作,example.com
但相同的规则不适用于子链接,当我访问现有链接时,就像example.com/about
它仍会在 http 中加载一样,现有链接不会发生重定向。
如何让 Apache 将所有 http 请求重定向到 https?
您应该配置 Apache Virtualhosts 来完成这项工作。RewriteMod 不是这种情况下的合适解决方案,
.htaccess
也不是。在您的 httpd.conf 或等效项中,根据您的需要使用以下行。将其编辑到您的域和站点。
希望这可以澄清程序。
在共享主机上,当您没有更好的选择时,您可以在 .htaccess 中修改您的重写规则:
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
首先,开头的 RegEx 匹配所有请求,包括域后面的所有内容。
然后,301(永久移动)的 HTTP 结果代码与新 URL 一起被扔回客户端。大多数现代浏览器会记住新 URL,在本例中是 httpS,并在用户下次调用网站时自动重定向到新 URL。
我希望这会有所帮助,亲切的问候