在正则表达式中使用ENV变量

时间:2016-09-20 21:03:09

标签: apache validation mod-rewrite url-rewriting

我正在尝试使用一些创建的局部变量作为正则表达式所需验证的一部分。到目前为止我的代码:

RewriteCond %{HTTP_REFERER} .*redirect=(.*?)(?:&.*|$)
RewriteRule .* - [E=REDIRECT:%1]

RewriteCond %{THE_REQUEST} \/(.*?)(?:\/-*|\s)
RewriteRule .* - [E=TEST_IDEA:%1]

RewriteCond %{ENV:REDIRECT} =%{ENV:TEST_IDEA} ###This doesn't work as '=' takes %{ENV:TEST_IDEA} lexicographically.
RewriteRule .* - [F]

作为一个切入点,我试图验证URL的引用和GET方法共享一些共同点。

1 个答案:

答案 0 :(得分:1)

如果您将第一个参数传递给RewriteCond作为文字expr,则可以使用ap_expr comparisons

RewriteCond expr "%{ENV:REDIRECT} = %{ENV:TEST_IDEA}"
RewriteRule ^ - [F]