无法重定向到https(htaccess)

时间:2018-04-23 09:11:19

标签: apache .htaccess http redirect https

我正在尝试配置我的htaccess文件,该文件将从http重定向到https,并带有以下语句行。但它无法实现。

注意:我也不想在网站网址之前使用www。

我的代码可能出现什么错误。任何人请建议。

 RewriteEngine on
 RewriteCond %{HTTPS} off
 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
 RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,L]

3 个答案:

答案 0 :(得分:1)

问题似乎是这一行:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

此行使此规则适用于仅以www开始的域。

您需要使用以下选项启动www

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]

答案 1 :(得分:1)

作为另一种解决方案,如果您只有一个域名(www.)example.com,则可以使用更具可读性:

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L,NE]

答案 2 :(得分:0)

尝试以下方法:



viewModel.getPeriods().observe(this, new Observer<List<Period>>() {
    @Override
    public void onChanged(@Nullable List<Period> periods) {
        updateList(periods); 
    }
});
&#13;
&#13;
&#13;

此外,您还可以根据端口号重定向,例如:

&#13;
&#13;
 RewriteEngine On
 RewriteCond %{HTTPS} !=on
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
&#13;
&#13;
&#13;

这会将端口80上收到的所有请求重定向到HTTPS。