Apache反向代理:如何将外部站点中的相对URL重定向回自身?

use*_*615 5 apache mod-proxy cross-domain cross-domain-proxy

我需要绕过跨站点脚本限制,以便在用户点击我在iframe(external.com/onlyforme)中加载的外部站点的链接时向用户显示地图.我了解到,最简单的方法是设置反向代理,以便Apache在访问local.com/external时检索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
Run Code Online (Sandbox Code Playgroud)

我正在运行Apache 2.2.

aro*_*r11 2

您需要添加几个ProxyHTMLURLMap您需要在上面

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>
Run Code Online (Sandbox Code Playgroud)

另请参阅:http ://wiki.uniformserver.com/index.php/Reverse_Proxy_Server:_mod_proxy_html