4

良いニュースは、私はすでに問題を解決したことです。悪いニュースは、問題を理解していないことです!

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は、予想される「サーバー」ではなく「他のサーバー」に移動します

より多くの「regex-y」動作を強制し、式で始まる (別名:

<Location ~ "^/a">
 ProxyPass to Server....
</Location>

それが私がそれをしなければならない方法なら、それは問題ありません。しかし、ドキュメントはこの状況についてかなり不明確に見えました。

ドキュメント ソース: ロケーション タグhttp://httpd.apache.org/docs/2.0/mod/core.html#locationの Httpd ドキュメントは、正規表現以外の方法でのロケーション マッチング (別名、いいえ ~) が行うことを暗示しているようです。ワイルドカードを使用しないでください (そのため、ワイルドカードと正規表現の使用方法を説明するセクションがあります)。また、最後のスラッシュの説明は、ワイルドカードを使用することを意味するものでもありません。

したがって、私のバージョンの Apache に何らかのバグが発見されたと仮定するしかありません。または、あまりにも似た URL 構造を使用しているだけで、Apache のドキュメントを理解できないのかもしれません。助けて、StackOverflow!

4

1 に答える 1

5

Apacheのドキュメントを参照すると、次のように明確に示されています。

〜文字を追加して、正規表現を使用することもできます。例えば:

<Location ~ "/(extra|special)/data">

サブストリング/extra/dataまたは/special/dataを含むURLと一致します。

于 2013-02-06T16:36:51.827 に答える