无法通过htaccess强制HTTPS和非WWW

时间:2017-11-20 19:00:08

标签: apache .htaccess redirect mod-rewrite

我试图强制任何常规的http请求重定向到https,并强制在网址中使用非www,以便最后的每个请求都是https://example.com

http://example.com变为https://example.com

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

https://www.example.com变为https://example.com

http://example.com变为https://example.com

我的htaccess文件中有以下代码。

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

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

但是我收到的错误表明它有太多的重定向。它似乎在这个测试网站上运行正常,输出正确:

htaaccess tester preview

任何想法或更好的方法吗?

1 个答案:

答案 0 :(得分:0)

以下代码可以帮助您:

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

它会将所有内容重定向到https://example.com