我正在尝试配置我的htaccess文件,该文件将从http重定向到https,并带有以下语句行。但它无法实现。
注意:我也不想在网站网址之前使用www。
我的代码可能出现什么错误。任何人请建议。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,L]
答案 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;
此外,您还可以根据端口号重定向,例如:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
&#13;
这会将端口80上收到的所有请求重定向到HTTPS。