如果两个变量rewritecond
和true
相等,我希望HTTP_ORIGIN
获得HTTP_HOST
。我试过了
RewriteCond %{HTTP:Origin} ^http://%{HTTP_HOST}(/|$)
但是,尽管有Netbeans语法颜色,但似乎Apache没有用它的值替换%{HTTP_HOST}
。我猜对了,因为
RewriteCond %{HTTP:Origin} ^http://cnfr005554(/|$)
RewriteCond %{HTTP_HOST} =cnfr005554
作品。
那么如何测试两个变量%{HTTP:Origin}
和%{HTTP_HOST}
是否相等? (是的,它适用于OWASP的指南来减轻XSRF)
答案 0 :(得分:3)
在RewriteCond
中,您无法在右侧使用变量。
你必须像这样使用它:
RewriteCond %{HTTP_HOST}##%{HTTP:Origin} ^(.+)##http://\1(/|$)
以下是使用分隔符##
连接2个变量(它可以是任何东西)。然后在RHS上我们匹配并捕获代表##
的{{1}}之前的值。 HTTP_HOST
使用反向引用##
后,我们会进行匹配。