2016-04-15 10 views
1

私は下のシナリオで立ち往生しています。Apacheリダイレクトクエリ

"foo"という名前のtomcatにアプリケーションをデプロイしました。 mod_proxyをApacheレベルで使用して、リクエストをApacheからTomcatにリダイレクトしています。以下はその設定です。

ProxyPass  /foo https://dev.apprlc.com:8080/foo 
ProxyPassReverse /foo https://dev.apprlc.com:8080/foo 

私はアプリケーションにメンテナンスを行っているときにメンテナンスページを表示したいと思います。以下はその構成です。

RewriteCond /etc/apache/conf/MAINT -f 
RewriteRule ^/foo$ /maintenance.html [R=302,L,NC] 

これはうまくいきます。しかし、メンテナンス時に使用できる秘密のURIを維持したい。 https://dev.webrlc.com/maint-testのように。 これについては、以下の設定をしました。

RewriteCond /etc/apache/conf/MAINT -f 
RewriteRule ^/foo$ /maintenance.html [R=302,L,NC] 

RewriteCond /etc/apache/conf/MAINT -f 
RewriteRule ^/maint-test$ /foo [PT] 

これは動作しません&私はそれがかなり明らかに見ることができます。 /maint-test/fooにリダイレクトされ、/fooはtomcatから/fooアプリケーションをフェッチするのではなく、/maintenance.htmlにリダイレクトされます。

解決方法を教えてもらえますか?本当に助けに感謝します。

答えて

1

リバースプロキシを使用するためにPフラグを追加します。代わりに/ fooを指定する代わりに、tomcatにリクエストを直接送信します。

RewriteCond /etc/apache/conf/MAINT -f RewriteRule ^/maint-test$ https://dev.apprlc.com:8080/foo [P]

+0

私はそれを試しました。しかし、/ maint-testはまだ/maintenance.htmlにリダイレクトされています。 – NewLands

+0

正確な設定を使いましたか? 2つのフラグ[P]と[PT]は異なります。上記の応答は、mod_proxyを使用してApacheからTomcatに要求を送信します。あなたが使った設定は、/ maint-test(apache)から/ foo(まだApache上)にリクエストを送ることです。 – nidhi

+0

ええ、私は '[P]'を使いました。 – NewLands