我为我们的网站获得了一些适当的 SSL 证书。我能够安装它们,并且 HTTPS 端的测试效果很好。剩下的唯一一件事就是将所有 HTTP 流量重定向到 HTTPS,然后事情就变得一团糟。
我在我的区域添加了以下行<VirtualHost *:80>
:
Redirect permanent / https://www.website.com/
这以两种方式引起了一些有趣的行为。首先是网站内所有指向网站内不同目录的绝对链接都失败了。例如,指向的链接http://www.website.com/directory
最终会出现https://www.website.comdirectory
强制性的“无法访问此站点”错误。直接输入 URLhttp://www.website.com/directory
将产生相同的行为。
用这个替换 Redirect 语句会更好吗?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R,L]
还是需要其他东西?
在 .htaccess 中试试这个:
所以我们想通了。
因为有多个配置文件,每个用于不同的挂载目录,所以每个配置文件都需要重定向规则或重写规则集。
现在上述规则已经到位,该网站按预期工作。