Apacheのドキュメントには、RewriteRuleとをサーバー構成に配置する必要があると記載されていますが、共有ホスティングの状況のため、htaccessに配置することができます。私はそのような状況にいます。
透過プロキシを設定しようとしています:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/foo [OR]
RewriteCond %{REQUEST_URI} ^/bar
RewriteRule ^(.*)$ http://example.com/$1 [P]
これは正常に動作しています...リダイレクトを除いて(/foo
が/bar
にリダイレクトする場合など)。リダイレクトはサーバーではなくexample.comに戻ります。
ProxyPassReverse
ディレクティブがこれを解決することを理解していますが、これを.htaccess
に追加すると、「内部サーバーエラー」ページが表示されます
Rewriteディレクティブとは異なり、 ProxyPassReverse
はhtaccessでは機能しません 。
共有ホスティングの状況で透過プロキシを設定するにはどうすればよいですか?
(Rewriteはすでに80%の方法で到達しており、1つのhtaccessに透過プロキシがあっても、別のhtaccessに干渉することはないため、これは妥当なようです。)
残念ながら、あなたがしたいことは不可能だとかなり確信しています。私はまったく同じことをしようとしています!私の研究から、それは不可能だとかなり確信しています。
簡単に言えば、VirtualHostレベル(または同様のもの)でのみ使用可能なProxyPassReverseを使用する必要があります。 htaccessレベルではありません。
編集:これを実現する唯一の方法は、プロキシの背後にあることを認識するように応答するサーバー/アプリケーションを構成し、ページを適切に提供することです。つまり、次のように.htaccessを使用して別のサーバーにリダイレクトします。
RewriteEngine on
RewriteRule (.*) http://localhost:8080/$1 [P,L]
次に、アプリケーションサーバー(この場合はJIRAインストール)でJava Tomcat/Catalinaを適切に構成して、プロキシ情報を含むページを提供します。
proxyName="my.public.address.com"
proxyPort="80"
ただし、これは完全に透過的ではありません。アプリサーバーは、プロキシされた方法でページを提供する必要があります。しかし、それはいくつかの役に立つかもしれません。