私の問題
Tomcat のパスと一致しないだけでなく、互いに類似したパスを持つ、動的アプリケーション用の Tomcat への Apache HTTP Server (v2.4.10) プロキシ リクエストが必要です。例えば:
/products/<category>/<sub-category>/<sub-sub-category>/<product-id>.htmlプロキシ先:http://mycluster/pf/<product-id>.html
...そしてまた...
/products/<category>/<sub-category>/<sub-sub-category>/<anything-not-ending-in-html>プロキシ先:http://mycluster/search/<anything-not-ending-in-html>
私の試み
これを処理するために LocationMatch 正規表現を使用しようとしていますが、完全には成功していません。*.html次の LocationMatch 正規表現は、単独で機能します (要求を にプロキシし<tomcat>/pf/*.htmlます)。
<LocationMatch ^/products/(?<cat>.+)/(?<subcat>.+)/(?<subsubcat>.+)/(?<partnum>.+).html>
ProxyPass balancer://mycluster/pf/%{env:MATCH_PARTNUM}.html
ProxyPassReverse balancer://mycluster/pf/%{env:MATCH_PARTNUM}.html
</LocationMatch>
これは、次の例のパスを使用して URL を渡します: /products/aaa/bbb/ccc/ddd3456.html(正しい)
ただし、以下の正規表現も有効にすると:
<LocationMatch ^(?!.*\.html$)/products/(?<cat>.+)/(?<subcat>.+)/(?<subsubcat>.+)((/?)|(./*))$>
ProxyPass balancer://mycluster/search/
ProxyPassReverse balancer://mycluster/search/
</LocationMatch>
/products/aaa/bbb/ccc/404 ページで結果にアクセスしようとしています。ここでは、「/products/aaa/bbb/ccc/」へのリクエストのうち、.html で終わらないものはすべて /search/ に渡されることを期待しています (後続のパス情報を含む: .../search/ など)。比較 )
私の質問
何が悪いのか、よくわかりません。Rubularによると、提供された正規表現は正しいです。
ここで何が欠けていますか?
これを解決するためのアドバイスをいただければ幸いです。