重定向到https无法使用www

时间:2017-12-10 15:11:12

标签: .htaccess redirect mod-rewrite url-rewriting http-redirect

我有一个名为example.com的域名。

我想始终重定向到https://www.example.comhttpswww)。

意思是:我需要重定向

https://example.com

http://www.example.com

http://example.com

https://www.example.com

这是我到目前为止的代码:

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule !^web/ /web%{REQUEST_URI} [L,NC]

这适用于:

https://example.com

http://example.com

但它不适用于:

http://www.example.com

我已经整天工作了(这是下午4点),但没有成功。

为什么?谁能给我一个提示?我做错了什么?

1 个答案:

答案 0 :(得分:0)

您使用的规则仅将非www域重定向到www而不检查https标头。

你可以用这个:

MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.blackcat);
                mp.setLooping(true);
                handler = VisualizerDbmHandler.Factory.newVisualizerHandler(getContext(),mp);
                audioVisualization.linkTo(handler);
                mp.start();

这会将RewriteEngine on #http to https with www RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^ https://www.example.com%{REQUEST_URI} [NC,L,R] #other rules RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] RewriteRule !^web/ /web%{REQUEST_URI} [L,NC] http重定向到non-www

在测试之前清除浏览器缓存。