使用mod_rewrite重写用户代理的规则

时间:2011-01-07 16:46:18

标签: apache http mod-rewrite

我正在尝试将所有请求重定向到特定用户代理的域到子域。我的规则如下:

RewriteEngine  on
RewriteCond %{HTTP_USER_AGENT}  ^Test Agent/(.*)$ // <-- Line 4
RewriteRule ^(.*)$         https://test.domain.com/$1          [L,302]

但是我在启动Web服务器时得到的只有:

Syntax error on line 4 of /var/www/misafe/internal/misafe-old.conf:
RewriteCond: bad flag delimiters

对我来说看起来不错,但我显然错过了一些错误并没有多大帮助。有什么想法吗?

谢谢, Ĵ

2 个答案:

答案 0 :(得分:18)

有2个错误:

首先:

RewriteCond %{HTTP_USER_AGENT}  ^Test Agent/(.*)$

您需要在正则表达式模式中转义空格并转发斜杠。

RewriteCond %{HTTP_USER_AGENT}  ^Test\ Agent\/(.*)$

第二

RewriteRule ^(.*)$         https://test.domain.com/$1          [L,302]

302是重定向HTTP状态代码,但您未指定要重定向。

RewriteRule ^(.*)$         https://test.domain.com/$1          [L,R=302]

答案 1 :(得分:1)

行:RewriteRule ^(.*)$ https://test.domain.com/$1 [L,302]

应该是:RewriteRule ^(.*)$ https://test.domain.com/$1 [R=302]