问题如下。只有/ user应该是HTTPS,网站的其余部分应该是HTTP。我创建了两个重写规则。第二个是工作但第一个不工作。
我已经搜索了很长时间但找不到问题:
RewriteEngine On
RewriteBase /
#RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/user$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
#RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/user [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
任何可以帮助我的人?
答案 0 :(得分:2)
第二条规则可能只是有效而不是第一条规则,因为当条件与第二条规则上的$
匹配时,您不会使用/user
终止该条件。因此,如果您的网址有/user/morestuff
。第一条规则不起作用。它将完全只是/user
。在第一条规则中删除用户之后的$
,看看它是否对您有帮助。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/user [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/user [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]