除特定URI之外的所有位置的Apache配置

时间:2016-05-10 07:28:47

标签: regex location apache2 config directive

我需要为位置指令应用一些配置。

这些配置必须适用于所有位置,但有些URIs除外(例如,我不想更改/products的配置,因此必须对所有位置应用波纹管配置,但 /除外产品

<Location />
 # desired configurations
</Location>

1 个答案:

答案 0 :(得分:3)

这可以通过以下几种方式完成:

1。使用正则表达式

位置指令中使用正则表达式匹配除模式之外的所有URI

e.g:

<Location ~ "^((?!/product).)*$">
# desired configurations
</Location>
  1. 使用&lt;如果&GT;指示: e.g:
  2. 在目录中使用If:

    <If "%{Request_URI} =! '.*/product.*'">
    

    <If "%{Request_URI} =! '^((?!/product).)*$'">
    
    1. 通过设置变量并使用If和IfDefine
    2. 在配置开始时设置变量,然后使用指令

      SetEnvIf Request_URI ".*/product.*" isProd=1
      ...
      <IfDefine isProd>
      ...
      

      或者您可以在If指令中使用expr来比较字符串和变量。

      https://wordpress.org/plugins/wordpress-social-login/screenshots/