Apache LocationMatch 的负正则表达式?

Apache LocationMatch 的负正则表达式?

我的 httpd.conf 中有以下位置指令:

<Location /App1>
    SetHandler weblogic-handler
    WebLogicHost 1.2.3.4
    WeblogicPort 7003
</Location>

<Location /App2>
    SetHandler weblogic-handler
    WebLogicHost 1.2.3.4
    WeblogicPort 7004
</Location>

<Location /Dev>
    SetHandler weblogic-handler
    WebLogicHost 1.2.3.4
    WeblogicPort 7005
</Location>

现在我希望对 != /App1 或 /App2 路径发出的任何请求都具有与 /Dev 位置相同的设置。

就像是

<LocationMatch "/^(?!App?).*\./*">
    SetHandler weblogic-handler
    WebLogicHost 1.2.3.4
    WeblogicPort 7005
</LocationMatch>

看起来像是一个合适的解决方案,但它似乎不起作用。有什么想法吗?

答案1

解决方案如下:

<LocationMatch "/*">
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !Dev
    RewriteCond %{REQUEST_URI} !App1
    RewriteCond %{REQUEST_URI} !App2

    RewriteRule ^(?!Dev)(?!App1)(?!App2)(.+) http://LINK-TO-DEV/ [L,R=301]
</LocationMatch>

相关内容