具有多个匹配项的 Apache .htaccess <IF> 语句

mar*_*ker 2 apache-2.4

我试过 ||, OR 没有成功,那么在单个语句中在用户代理上编写这两个匹配项的更简洁方法是什么?

<If "%{HTTP_USER_AGENT} == 'Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1'">
  Require all denied
</If>
<If "%{HTTP_USER_AGENT} == 'Mozilla/5.0 (Windows NT 6.1; WOW64)'">
  Require all denied
</If>
Run Code Online (Sandbox Code Playgroud)

小智 5

你确定你没有犯任何语法错误吗?

的用法||是这样完成的,它工作正常:

<If "%{HTTP_USER_AGENT} == 'Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1' || %{HTTP_USER_AGENT} == 'Mozilla/5.0 (Windows NT 6.1; WOW64)'">
    Require all denied
</If>
Run Code Online (Sandbox Code Playgroud)

Apache HTTP 中的表达式参考:

https://httpd.apache.org/docs/current/expr.html

  • 这非常有效。OR 条件 `||` 必须在 `&lt;If&gt;` 语句的双引号 `""` 内作为单个表达式。例如`“某事 || 某事”`,而不是“某事” || “东西”`。 (2认同)