如何重定向到https

时间:2019-02-10 05:16:16

标签: url-redirection

我安装了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]`

2 个答案:

答案 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/