質問: ProxyPassを使用し、iisと連携したいのですが、掲題の設定方法がわかりません。 ProxyPass / http://192.168.1.1:40180/ ProxyPassReverse / http://192.168.1.1:40180/ このように記載した際に https://www.example.jp/aaa/ はリバースプロキシをせず表示させたいのですが、 https://www.example.jp/aaa/bbb/ ←リバースプロキシに渡さない https://www.example.jp/aaa/ccc/ ←リバースプロキシに渡さない https://www.example.jp/aaa/ddd/ ←リバースプロキシさせたい とする場合にはどのように記述したら良いでしょうか。 RewriteEngine on RewriteRule ^\/aaa\/ddd.* http://192.168.1.1:40180/$1 [P] としてみたのですが、この設定だと全体的にリバースプロキシに処理が渡されてしまうようです。 追記 https://www.example.jp/aaa/の部分について https://www.example.jp/aaa2/ https://www.example.jp/a123/ https://www.example.jp/zzz8/ のように複数存在しこの先も増えていくため、 proxypassは/で指定せざるを得ない事情がございます。 /bbb、/ccc、/dddのぶぶんについては固定です。 RewriteRuleやRewriteCondで何とかならないかと調べていますが、 https://www.example.jp/***/ddd/ ←リバースプロキシさせたい その他の通信はリバースプロキシさせないのようなルールが わからずにいます。
回答: > > https://www.example.jp/aaa/ はリバースプロキシをせず表示させたいのですが、 > > https://www.example.jp/aaa/bbb/ ←リバースプロキシに渡さない > > https://www.example.jp/aaa/ccc/ ←リバースプロキシに渡さない > > https://www.example.jp/aaa/ddd/ ←リバースプロキシさせたい > > > これではだめでしょうか。 ``` ProxyPass /aaa/ddd/ http://192.168.1.1:40180/aaa/ddd/ ProxyPassReverse /aaa/ddd/ http://192.168.1.1:40180/aaa/ddd/ ProxyPass /aaa2/ddd/ http://192.168.1.1:40180/aaa2/ddd/ ProxyPassReverse /aaa2/ddd/ http://192.168.1.1:40180/aaa2/ddd/ ... ``` ではこれでは (動くか試していませんが)。 ``` ProxyPassMatch ^/([^/]+)/ddd/(.*) http://192.168.1.1:40180/$1/ddd/$2 ProxyPassReverse / http://192.168.1.1:40180/ ``` ProxyPassReverseに関するリバースプロキシ変換はプロキシ先のサーバから返ってきたもののみに働くはずなので、1行ですむでしょう。