仅重定向FQDN和www。到HTTPS

时间:2014-08-20 09:53:32

标签: .htaccess mod-rewrite redirect

目前,我有以下RewriteRules将用户重定向到HTTPS:

# Force all request to HTTPS URLs                                                    
RewriteCond %{HTTP:X-Forwarded-Proto} !https                                         
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=302,L]

它重定向所有流量,我希望它只对FQDN和www这样做。 sudomain。

所以重定向:

  • example.org
  • www.example.org

不能重定向的示例:

  • example.example.org
  • www.example.example.org
  • blog.example.org

为了做到这一点,我需要添加哪些RewriteCond语句?

1 个答案:

答案 0 :(得分:1)

您可以添加以下条件:RewriteCond %{HTTP_HOST} ^(www\.)?example\.org$ [NC] 这将仅匹配example.orgwww.example.org

RewriteEngine On

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

编辑:避免在规则中使用域名(这意味着使用例外子域名)

RewriteEngine On

# if subdomain exception do nothing
RewriteCond %{HTTP_HOST} ^(example|www\.example|blog)\. [NC]
RewriteRule . - [L]

# if we reach here, that means we have www.example.org or example.org so redirect if not https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=302,L]