![Apache mod 在不影响现有规则的情况下将 http 重写为 https](https://linux22.com/image/597063/Apache%20mod%20%E5%9C%A8%E4%B8%8D%E5%BD%B1%E5%93%8D%E7%8E%B0%E6%9C%89%E8%A7%84%E5%88%99%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%B0%86%20http%20%E9%87%8D%E5%86%99%E4%B8%BA%20https.png)
我在 .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 站点)。