我想有一个rewritecond是得到true两个变量HTTP_ORIGIN和HTTP_HOST是平等的。我试过
RewriteCond %{HTTP:Origin} ^http://%{HTTP_HOST}(/|$)
Run Code Online (Sandbox Code Playgroud)
但是,尽管 Netbeans 的语法颜色不同,但 Apache 似乎并没有%{HTTP_HOST}被它的价值所取代。我猜是因为
RewriteCond %{HTTP:Origin} ^http://cnfr005554(/|$)
RewriteCond %{HTTP_HOST} =cnfr005554
Run Code Online (Sandbox Code Playgroud)
作品。
所以,我怎么可以测试两个变量%{HTTP:Origin}和%{HTTP_HOST}是平等的?(是的,这是为了应用 OWASP 的指南来缓解 XSRF)
在RewriteCond您不能在右侧使用变量。
你必须像这样使用它:
RewriteCond %{HTTP_HOST}##%{HTTP:Origin} ^(.+)##http://\1(/|$)
Run Code Online (Sandbox Code Playgroud)
这是使用分隔符连接 2 个变量##(它可以是任何东西)。然后在 RHS 上,我们匹配并捕获##代表之前的值HTTP_HOST。之后##使用反向引用\1,我们做我们的匹配。
| 归档时间: |
|
| 查看次数: |
1113 次 |
| 最近记录: |