

CentOS+Apacheで以下のドメインを設定しています。

Server1のvirtualhost  
`http://www.test.com/  
https://new-sslhost.com/`

Server2のvirtualost  
`https://sslhost.com`

* * *

現在以下のindex.htmlの中には以下のような記述があります。  
`http://www.test.com/index.html`  
`<a href="https://sslhost.com/"><img src=https://sslhost.com/image.jpg></a>`

* * *

これをApacheのmod_Rewriteなどを使い  
`http://test.com/index.html`を表示した時に  
「img src=`https://sslhost.com/image.jpg`」を「img src=`https://new-
sslhost.com/image.jpg`」に書き換えたい。  
リンクをクリックした時にアドレスバーは`https://sslhost.com`を表示しながら、  
実際は`https://new-sslhost.com`を表示させる事は可能でしょうか。


CC BY-SA 3.0
2015-08-02T05:05:41.523
12940
2015-08-02T13:17:33.583
10761
question
apache
Apacheでmod_Rewriteなどを使い、違うサーバに行くはずのリクエストを内部で処理したい。


> リンクをクリックした時にアドレスバーはhttps://sslhost.comを表示しながら、  
>  実際はhttps://new-sslhost.comを表示させる事は可能でしょうか。

アドレスバーに `https://sslhost.com`
と表示される場合、ブラウザはServer2に直接アクセスするわけですから、無関係なServer1でどうこうすることはできません。そんなことが容易にできては、フィッシング詐欺に使われてしまうでしょう。

もちろんServer1以外に手を加えれば、そのようなことも可能です。

  * クライアントのhostsファイルに `https://sslhost.com` を記載する
  * `https://sslhsot.com` 宛をServer1に送るプロキシを作り、クライアントに設定する
  * 自分宛のアクセスをServer1に送るリバースプロキシをServer2に設定する

いずれの方法も、正規の通信経路上で改変を行うというのがポイントです。

> `http://test.com/index.html`を表示した時に「img
> src=`https://sslhost.com/image.jpg`」を「img src=`https://new-
> sslhost.com/image.jpg`」に書き換えたい。

これは可能です。が、mod_rewrite はリクエストのURLを内部的に書き換えるモジュールに過ぎず、レスポンスの中身を改変する機能は持ちません。代わりに
mod_substitute が使えるのではないでしょうか。

[本番環境と開発環境の差を mod_substitute で吸収する - PSI Labs](http://www.psi-
net.co.jp/blog/?p=874)


CC BY-SA 3.0
2015-08-02T13:17:33.583
12951
2015-08-02T13:17:33.583
8000
12940
answer