Apache mod 在不影响现有规则的情况下将 http 重写为 https

Apache mod 在不影响现有规则的情况下将 http 重写为 https

我在 .htaccess 中已经有重写规则。我的旧规则将所有 html 扩展名替换为 php。我的 .htaccess:

RewriteEngine On
RewriteRule ^(.*).html$ index.php?set=$1

现在我们有了 SSL,所以我想将所有 url http 重定向到 https,而不影响我的旧规则。我试过:

RewriteEngine On
RewriteRule ^(.*).html$ index.php?set=$1RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^(.*).html$ index.php?set=$1

这样,https 重定向就可以正常工作,但我的旧规则失败了。

答案1

为什么不使用重写来将所有 http 连接重定向到 https,而是使用重定向?

Redirect / https://your.server.com/

仅将此重定向添加到 http 虚拟主机(我假设您正在使用虚拟主机来实现 https 站点)。

相关内容