5

ユーザーが iframe (external.com/onlyforme) 内にロードした外部サイトからのリンクをクリックしたときにマップを表示するには、クロスサイト スクリプティングの制限をバイパスする必要があります。これを行う最も簡単な方法は、local.com/external にアクセスしたときに Apache が external.com/onlyforme を取得するようにリバース プロキシを設定し、それが自分のドメインから来ているように見せることであることがわかりました。

これはほとんど機能しますが、external.com/onlyforme/index.html が external.com/onlyforme/site_media/script.js にアクセスしようとすると、local.com/site_media/script.js にリダイレクトされます。これは私が望んでいるものではありません。 . 代わりに、external.com/onlyforme 内の正しい URL にリダイレクトして、外部サイトが期待どおりに機能するようにしたいと考えています。

どうやってやるの?

これは、他の構成ステートメントの外側の httpd.conf にあります。

ProxyRequests Off
ProxyPass /external/ http://www.external.com/onlyforme
ProxyPassReverse /external/ http://www.external.com/onlyforme

私はApache 2.2を実行しています。

4

2 に答える 2

2

上記にいくつかのProxyHTMLURLMapディレクティブを追加して、返された HTML 内のハードコードされた URL を検査して書き換える必要があります。

ProxyRequests Off
ProxyPass        /external/         http://www.external.com/onlyforme
ProxyHTMLURLMap http://www.external.com/onlyforme     /external

<Location /external/>
  ProxyPassReverse  http://www.external.com/onlyforme
  SetOutputFilter proxy-html
  ProxyHTMLURLMap /            /external/
  ProxyHTMLURLMap /site_media  /external/site_media/
</Location>

参照: http://wiki.uniformserver.com/index.php/Reverse_Proxy_Server:_mod_proxy_html

于 2012-11-14T18:56:05.550 に答える