在IE7上的HTTP 302问题

这可能是我见过的最奇怪的事情。 当我从Firefox,Chrome或I8进行HTTP GET时,Apache将返回一个200(ok)响应。 但是,当我以兼容模式从IE8发送相同的请求时,服务器返回302(临时redirect),并将服务器发送到无限redirect循环中。

我有服务器日志来certificate它。 我通常得到这样的回应:

127.0.0.1 - - [09/Nov/2010:13:02:25 -0600] "GET /tabby/members/login HTTP/1.1" 200 5712 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12" 

但与IE8兼容模式下,我得到这样的回应:

 127.0.0.1 - - [09/Nov/2010:13:03:17 -0600] "GET /tabby/members/login/ HTTP/1.1" 302 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC; .NET4.0C; InfoPath.3)" 

然后,IE将不断地尝试请求。 这发生在我的本地开发机器(Windows)和我的testing服务器(Linux)上。

我怀疑有两个原因。 第一个可能是我的.htaccess文件中的重写规则。 我还使用PHP来设置我的一些脚本中的位置标题,这应该会生成一个302。

对于它的价值,这里是我的.htaccess文件:

 # Turn on URL rewriting RewriteEngine On # Installation directory RewriteBase /tabby/ # Protect application files from being viewed RewriteRule ^(application) - [F,L] # Allow any other files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite all other URLs to index.php/ RewriteRule .* index.php/$0 [PT,L] 

IE7如何处理302响应是否有任何已知的问题? 为什么Apache会为某些浏览器发送200,为其他人发送302?

什么是/tabby/members/login – 它可能是一个浏览器嗅探程序,并有一个错误?