用mod_rewrite重写用户代理的规则

我试图将所有请求redirect到一个域从一个特定的用户代理到一个子域。 我的规则如下:

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 

它对我来说看起来不错,但是我明显错过了一些东西,错误没有多大帮助。 有任何想法吗?

谢谢,J

有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] 

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

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