HTTP到HTTPS工作,但其他方式不起作用

时间:2015-06-26 14:54:39

标签: .htaccess rewrite

问题如下。只有/ 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]

任何可以帮助我的人?​​

1 个答案:

答案 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]