.htaccess自动重定向到一个域

时间:2016-05-09 20:31:55

标签: .htaccess redirect https

我尝试重定向(如果您直接在地址栏中输入)到https://example.com 从而

http://www.example.com -> https://example.com
https://www.example.com -> https://example.com
example.com -> https://example.com
www.example.com -> https://example.com

我已经尝试过了(以及其他许多其他方式):

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

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

所以

http://www.example.com
https://www.example.com
www.example.com

将全部重定向到https://example.com

example.com不会自动重定向到https://example.com

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以使用OR条件来匹配请求www或http,并将其重定向到https://non-www

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

答案 1 :(得分:0)

我认为@starkeen s'方式会起作用......但不是在你使用Cloudflare时!适用于使用Cloudflare的人的解决方案:

  

强制HTTPS默认情况下,CloudFlare HTTPS不会强制所有流量   到HTTPS。要强制HTTPS,请执行以下操作:

     

转到您的网站点击齿轮图标,然后选择"页面规则"   在URL模式输入中输入您的网站切换"始终使用   HTTPS"切换单击"添加规则"在底部做这一切   您网站的流量将使用HTTPS。当有人访问你的   使用HTTP的网站,CloudFlare会将这些请求重定向到HTTPS。

它对我有用。