LocationMatch允许主URL排除特定子文件夹

时间:2016-07-07 16:24:29

标签: regex apache locationmatch

在httpd.conf中我想允许主路径,但不允许使用特定的子文件夹。

必须接受任何具有此模式的网址:

/app-1.0/public

/app-1.0/images

/app-1.0 /

但必须忽略/不允许这个。

/app-1.0/private

我想在apache 2.2.3版本上使用此配置。我已经读过该版本不支持负面正则表达式,但我不确定。

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

如果您想禁止任何以/app-1.0/开头然后拥有private的路径,您可以使用

^/app-1\.0/(?!private).*

请参阅regex demo

模式说明

  • ^ -start of string(如果文本不在开头则删除)
  • /app-1\.0/ - 文字/app-1.0/文字(点必须转义才能被视为文字点)
  • (?!private) - 如果在当前位置后面有private文字,则会导致匹配失败(=不允许)的否定前瞻
  • .* - 除换行符之外的任何0 +字符

注意:在我的原始评论中,我在/app-1\.0/(?!private$).*之后建议$模式private。该模式不允许(=不匹配)最后包含/app-1.0/private的字符串($是字符串结尾锚)。