如何用正则表达式表达一条路径和除一个子路径之外的所有子路径?

如何用正则表达式表达一条路径和除一个子路径之外的所有子路径?

对于 web 应用程序,我需要在 Apache 中对路径及其所有子路径进行 AliasMatch,但是我需要排除子路径。

例子:

AliasMatch /webapp /usr/share/webapp
有效路径为/abc.dom/webapp /abc.dom/webapp/somepath/do.php

但我还需要
AliasMatch /webapp/static /usr/share/webapp/media/static
有效路径是/abc.dom/webapp/static/ /abc.dom/webapp/static/css/

所以我需要一个匹配/webapp/*但不匹配的正则表达式/webapp/static/*,反之亦然。

有什么想法吗?我尝试过的所有方法都以第一种或第二种结果结束,但不能同时以两种结果结束。

答案1

AliasMatch "^/webapp/((?!static/).*)$" "/usr/share/webapp/$1"
AliasMatch "^/webapp/static/(.*)" "/usr/share/webapp/media/static/$1"

相关内容