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

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

我已经尝试过 ||,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>

答案1

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

用法||如下,效果很好:

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

Apache HTTP 中的表达式参考:

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

答案2

您可以使用正则表达式:

<If "%{HTTP_USER_AGENT} =~ /Mobile/">
   Require all denied
</If>

相关内容