将域上的所有传入流量重定向到非www HTTPS

时间:2012-09-13 16:24:23

标签: .htaccess mod-rewrite redirect

我以为我可以使用以下内容完成此任务,但它正在循环...

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

我需要做些什么来确保域的所有实例在没有循环的情况下转到https://example.com

1 个答案:

答案 0 :(得分:3)

您的第一行检查主机是否是您要重定向到的主机。您无需检查HTTPS_HOST,因为在https中,主机仍然相同(来自请求标头,Host:)。

尝试:

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

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]