我需要使用 MSIE 浏览器(不包括Edge浏览器)将用户重定向到特定文件(例如msie.html
);对于其他人,我想将任何请求重定向到子目录。
我在现代Linux上安装了 Apache 2.4 + 和 mod_rewrite 。
我现在在VirtualHost配置文件上使用的是这样的:
<Directory />
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "MSIE 10" [NC]
RewriteCond %{REQUEST_URI} !/msie.html
RewriteRule ^(.*)$ https://www.my.site/msie.html [L,R=302]
RewriteRule ^(.*)$ https://www.my.site/home/
LogLevel alert rewrite:trace6
Options FollowSymLinks
AllowOverride All
</Directory>
我添加了一个日志级别alert rewrite:trace6
来跟踪问题。
通过我发布的设置,我发现对于IE浏览器,HTTP_USER_AGENT
确实匹配,但是浏览器仍然重定向到/home
文件夹,而不是我期望的msie.html
页面。
任何其他用户代理均已正确重定向到/home
文件夹。
我使用第二个条件(...!/msie.html
)来避免无限重定向。
使用这种配置查看日志,我发现每个请求的行数非常多(例如一百),所以我想我犯了一些非常严重的错误...:-(