我安装了SSL,现在我想将域名重定向到HTTPS。我的.htaccess文件具有我的CMS提供的此配置
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Options +FollowSymLinks
Options -Indexes
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule . index.php [L,QSA]`
答案 0 :(得分:0)
您正在使用什么CMS?多数常见的CMS都有插件,可以更好地将所有非HTTPS资源更新为HTTPS。
我知道您请求不推荐其他链接,但是:
Apache文档建议不要使用重写: 要将http URL重定向到https,请执行以下操作:
<VirtualHost *:80>
ServerName www.example.com
Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
# ... SSL configuration goes here
</VirtualHost>
此代码段应放入主服务器配置文件,而不是问题中的.htaccess文件。 本文可能仅在提出问题并回答后才出现,但这似乎是当前的解决之道。 https://stackoverflow.com/a/21798882/11039985
如果您必须使用htaccess:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
更新:在对htaccess文件进行备份后,根据您的回答进行尝试:
Options +FollowSymLinks
Options -Indexes
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule . index.php [L,QSA]
答案 1 :(得分:0)
我认为您正在寻找的是设置hsts。您可以在此处找到有关此标题的更多信息。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
此链接将有助于设置hsts。 https://www.globalsign.com/en/blog/what-is-hsts-and-how-do-i-use-it/