- ベストアンサー
ApacheのProxyでURL書き換えをせずに動作させる方法
- ApacheのProxyを使用して、URLを書き換えずに動作させたい場合、mod_rewriteを試すことができます。しかし、その方法でもURLは書き換わってしまいます。そこで、他の方法を探しているのですが、何かよい方法はありますか?
- ApacheのProxyPassを使用して新しいサーバにアクセスすると、URLが書き換わってしまいます。この問題を解決するためにmod_rewriteを試してみましたが、同じような結果になりました。URLを書き換えずに新しいサーバにアクセスする方法はありますか?
- 現在、ApacheのProxyを使用して新しいサーバにアクセスしようとしていますが、URLが書き換わってしまい困っています。mod_rewriteを使用しても同じような結果になります。URLを書き換えずに新しいサーバにアクセスする方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
書かれたルールでは http://hoge1.hoge.jp/a.html -> http://192.168.1.1/hoge.html/a.html http://hoge1.hoge.jp/hoge.html/a.html -> http://192.168.1.1/hoge.html/a.html という対応になります。 hoge.html を一段減らすルールを追加してうまくいったということ ですね。 プロキシーした場合に転送先の URL に変わってしまうというのは普通は ないと思うのですが、なぜでしょうかね。プロキシー先のコンテンツの 記述に原因がありそうです。 ハードルは高いかもしれませんが、 RewriteLog logs/rewrite.log RewriteLogLevel 9 でログを取ると何か見つかるかもしれません。
その他の回答 (1)
- t-okura
- ベストアンサー率75% (253/335)
ProxyPassReverse / http://192.168.1.1/hoge.html/ してもだめですか。
お礼
ProxyPass / http://192.168.1.1/hoge.html/ ProxyPassReverse / http://192.168.1.1/hoge.html/ という2行を書いたのですが、だめでした。 だめの状態ですが、 192.168.1.1の環境にある一部コンテンツが、 相対パスでありかを指定されていたため、 リンク切れのような状態となってしまいました。 このため以下のようにmod_rewrite+mod_proxyの連携で試したところ、 RewriteRule ^/hoge\.html/(.*)$ http://192.168.1.1/hoge.hmtl/$1 [P] RewriteRule ^/(.*)$ http://192.168.1.1/hoge.hmtl/$1 [P] うまくいきました。 ⇒リンク切れとなっていたコンテンツも表示され、 ブラウザのアドレスバーのURLも書き換わらず、 検証環境のIPアドレスがアドレスバーに残ったままとなりました。 ただ、ここで疑問があります。 はずかしながら、 このRewriteRuleはインターネット上のいろいろなサイトをみて、 見よう見真似で書いたものでして、 この動作がいまいち理解できておりません。 もしこのRewriteRuleの動作について詳しくお分かりになるようでしたら、 教えて頂きたいのですが。。。
お礼
回答ありがとうございます! 返信遅れましてすみません。 >プロキシーした場合に転送先の URL に変わってしまうというのは普通は >ないと思うのですが、なぜでしょうかね。プロキシー先のコンテンツの 記述に原因がありそうです。 なるほど。 転送先のサーバ・コンテンツを管理運営している会社から、 私の会社へコンテンツ移管するため、 向こうの詳細をあまり詳しく教えてくれないので、 なんとかうまくいってよかったです。 動作についてはなんとなく理解いたしましたw >RewriteLog logs/rewrite.log >RewriteLogLevel 9 デバッグして解析してみます。 ありがとうございました。