我有一些规则强制使用https重写任何http URL 这些规则应仅适用于特定的HTTP主机(即,如果用户通过特定的子域名访问该站点)。
一切正常,但现在我想在用户访问特定网址时停用https重定向
e.g。 http://subdomain.domain.com/test/abc.html或http://subdomain.domain.com/test/123456.html
这是我的代码,但Apache似乎忽略了我的第二行
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com [NC]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
答案 0 :(得分:1)
你的规则如下:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !\s/+talent/ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=302]
最好使用%{THE_REQUEST}
,因为THE_REQUEST
变量代表Apache从您的浏览器收到的原始请求,并且在执行某些重写规则后不会被覆盖。