Apache:如何重定向到特定用户代理上的文件,以及其他任何请求的子目录?

时间:2019-01-25 17:31:19

标签: apache mod-rewrite url-rewriting

我需要使用 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)来避免无限重定向。

使用这种配置查看日志,我发现每个请求的行数非常多(例如一百),所以我想我犯了一些非常严重的错误...:-(

0 个答案:

没有答案