mod_alias AliasMatch Regex - 匹配文件夹中除两个模式之外的所有内容?

Tri*_*tan 2 regex alias mod-alias

我想使用 AliasMatch 为文件夹中的所有内容创建别名,两个(或多个)特定的正则表达式模式除外

例如,以下 AliasMatch 为“内容”文件夹中的所有内容创建别名:

AliasMatch /content(.*) /home/username/public_html/$1
Run Code Online (Sandbox Code Playgroud)

但是有两个正则表达式模式我不希望上述别名匹配,例如:

^content/([a-zA-Z0-9_-]+)/id-([a-zA-Z0-9_-]+)/([0-9]+)
^content/([a-zA-Z0-9_-]+)/nn-([a-zA-Z0-9_-]+)
Run Code Online (Sandbox Code Playgroud)

我知道 NOT (!) 字符可用于否定模式,但我不知道如何在此处使用它,也不知道如何否定 AliasMatch 中的多个模式。

这怎么可能?

Bac*_*sau 5

ModAlias 实际上支持负前瞻。我在我的网站上使用它,效果很好:

AliasMatch ^/(?!w/|BingSiteAuth\.xml$|favicon\.ico$|google.{16}\.html$|robots\.txt$) /path/to/file
Run Code Online (Sandbox Code Playgroud)

请确保您的正则表达式以“/”开头,因为它始终是 mod_alias 的第一个字符!切勿尝试以先行方式开始您的规则,否则解析将失败。