好消息是我已经解决了我的问题,坏消息是我不明白这个问题!
URL: http://host:port/a/b
的httpd.conf
<Location /a>
ProxyPass to Server....
</Location>
<Location /b>
ProxyPass to some other Server
</Location>
在此设置中,我对http://.../a/b
的请求将我带到“其他服务器”而不是预期的“服务器”
我能够通过强制更多“正则表达式”行为,并使用带表达式的开头(又名:
)来获得我预期的行为<Location ~ "^/a">
ProxyPass to Server....
</Location>
如果我必须这样做,那很好。但是在这种情况下,文档似乎并不清楚。
文档来源: 位置标记http://httpd.apache.org/docs/2.0/mod/core.html#location上的Httpd文档似乎暗示以非正则表达式方式匹配的位置(也称为no~)不使用通配符(这就是为什么他们有一节解释如何使用通配符和正则表达式)。此外,最后的斜线讨论并不意味着它也使用通配符。
所以,我只能假设我在我的Apache版本中发现了一些错误。或者我可能只是使用过于相似的URL结构而无法理解Apache文档。帮助我,StackOverflow!
答案 0 :(得分:3)
如果您参考Apache docs,则会明确说明
也可以使用正则表达式,并添加〜 字符。例如:
<Location ~ "/(extra|special)/data">
会匹配包含的网址 substring / extra / data或/ special / data。