Mod_Rewrite重定向循环

时间:2014-05-16 15:32:46

标签: .htaccess

基本上我在我的htaccess上有这个代码:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} off
RewriteRule ^(login.php|signup.php)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteRule !^(login.php|signup.php)$ http://%{HTTP_HOST}/$1 [R=301,L]

应该将用户发送到SSL连接。但它一直有一个重定向循环。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您不能使用带有负面模式的反向引用。

RewriteRule !^login\.php$|^signup\.php$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

或者

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !login\.php$
RewriteCond %{REQUEST_URI} !signup\.php$
RewriteRule . http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]