尝试基于用户代理redirect时,mod_rewrite发送redirect循环

我使用Apache 2.2.3(旧版本,我知道)

所以我试图redirect基于旧版本的IE(6和7现在…),我得到一个redirect循环。

我有:

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} "MSIE\ [6-7]" [NC] RewriteRule .* https://example.com/upgrade.html [R=302,L]

在虚拟机中使用类似IE7的东西只需要花费很长时间,根本不会加载。 也尝试了这个与browserstack,具有相同的结果。 通常我的网站会出现,但是这个重写对我来说工作不太好。 我想redirect到一个页面,如果Apache看到IE6,7而不是去主页。

使用JavaScript库为此不适用于我,因为一切都是dynamic生成的。

如果exam​​ple.com/upgrade.html位于同一台服务器上,则需要添加一个检查以确保在用户已经位于upgrade.html URL(例如redirect到该URL)后不会执行redirect。

试试这个(第二行是我添加的):

 RewriteEngine On RewriteCond %{REQUEST_URI} !^/upgrade.html$ RewriteCond %{HTTP_USER_AGENT} "MSIE\ [6-7]" [NC] RewriteRule .* https://example.com/upgrade.html [R=302,L]