如何使用htacces重写除一个子域外的所有https交通的规则

时间:2018-12-18 19:10:33

标签: apache .htaccess

我正在使用此htaccess代码将所有http重定向到https

RewriteEngine On 
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

它适用于:

www.example.com
www.domain1.example.com
www.nohttps.example.com

所以,我不想将此规则用于www.nohttps.example.com,该怎么做?我不知道。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

添加条件以排除子域:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(?:www\.)?nohttps\. [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^(?:www\.)?nohttps\. [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

请确保使用新的浏览器来测试此更改。