目前,我有以下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。
所以重定向:
不能重定向的示例:
为了做到这一点,我需要添加哪些RewriteCond
语句?
答案 0 :(得分:1)
您可以添加以下条件:RewriteCond %{HTTP_HOST} ^(www\.)?example\.org$ [NC]
这将仅匹配example.org
和www.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]