ProxyPass が ProxyPassMatch と連携して動作しない

ProxyPass が ProxyPassMatch と連携して動作しない

現時点では、ProxyPass を使用して Oracle HTTP Server インスタンスに仮想ホストを次のように構成しています。

ProxyPass ^/test/home/ https://example.com/
ProxyPassMatch ^/test/home/(.*)$ https://example.com/$1
ProxyPassReverse ^/test/home/(.*)$ https://example.com/$1

アクセスしようとすると、https://mywebsite.com/test/home/<url_from_other_server>リクエストは期待どおりに機能しているように見えます。ただし、アクセスしようとするとhttps://mywebsite.com/test/home/プロキシされhttps://example.com/ず、404 が返されます。

ワイルドProxyPassMatchカードは、アクセスしようとするすべてのサブ URL に対して機能しているようですが、通常のProxyPassキーワードは機能していません。

完全に削除しようとしましたProxyPassが、/test/home/にアクセスしようとすると同じ404エラーが発生します。

この奇妙な動作の原因が何なのか、誰か分かるでしょうか?

ありがとう。

答え1

正規表現は正しくありません。*は「0 回以上の出現」を意味するため、 とhttps://mywebsite.com/test/home/一致します。(.*)を に変更します(.+)。これは「1 回以上の出現」を意味します。そうすると、ProxyPassMatch はその URL と一致しなくなります。

または、ProxyPassMatch 行を完全に削除します。これはほとんど役に立ちません。URL は ProxyPass 行によって自動的に処理されます。

ProxyPass /test/home/ https://example.com/
ProxyPassReverse /test/home/ https://example.com/

答え2

この問題は解決されました。この問題に対する正しい構成は次のとおりです。

ProxyPass /test/home(.*)$ https://example.com/$1
ProxyPassReverse /test/home(.*)$ https://example.com/$1

スラッシュを削除してワイルドカードを追加すると、 に続くすべてのものをプロキシできるようになりました/test/home

皆様のご意見に感謝いたします。

関連情報