我正在使用 Apache 2.2.3(我知道是旧版本)
因此,我尝试基于旧版本的 IE(目前为 6 和 7...)进行重定向,但出现了重定向循环。
我有:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} "MSIE\ [6-7]" [NC] RewriteRule .* https://example.com/upgrade.html [R=302,L]
在虚拟机中使用 IE7 之类的浏览器会耗费很长时间,而且根本无法加载。还尝试使用 browserstack,结果相同。通常我的网站可以正常显示,但这种重写对我来说效果不太好。如果 Apache 看到 IE6,7,我想重定向到一个页面,而不是转到主页。
对于我来说,使用 javascript 库是行不通的,因为其他所有内容都是动态生成的。
答案1
如果 example.com/upgrade.html 在同一台服务器上,则需要添加检查以确保如果用户已经在 upgrade.html URL 上(例如,在重定向到该 URL 之后),则不执行重定向。
尝试这个(第二行是我添加的):
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/upgrade.html$
RewriteCond %{HTTP_USER_AGENT} "MSIE\ [6-7]" [NC]
RewriteRule .* https://example.com/upgrade.html [R=302,L]