Apache HTTP 到 HTTPS 重定向,绝对链接和书签失败

Apache HTTP 到 HTTPS 重定向,绝对链接和书签失败

我为我们的网站获取了一些合适的 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]

或者还需要别的东西吗?

答案1

在.htaccess 中尝试这个:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.my-site.com/$1 [R,L]

答案2

因此我们解决了这个问题。

因为有多个配置文件,每个文件用于不同的挂载目录,所以每个配置文件都需要一个重定向规则或重写规则集。

现在上述规则已经到位,网站可以按预期运行。

相关内容