2012-11-04 14 views
5

Çünkü ben bir iframe (external.com/onlyforme) içine yüklediğiniz harici bir siteden bir bağlantıyı tıkladığında kullanıcılara haritasını göstermek amacıyla siteler arası komut dosyası kısıtlamalarını aşmak gerekir. Ben Apaçi ben local.com/external eriştiklerinde external.com/onlyforme almak, ve bu benim etki alanından geliyor gibi görünüyor, böylece bunu yapmak böylece Bunu yapmanın en kolay yolu, bir ters vekil kurmak olduğunu öğrendik.Apache ters vekil: nasıl geri kendisine dış sitedeki göreli URL'ler yönlendirmek için?

Bu çoğunlukla çalışır, ancak external.com/onlyforme/index.html, harici.com/onlyforme/site_media/script.js adresine erişmeyi denediğinde, local.com/site_media/script.js adresine yönlendirilir. istediğimi değil. Bunun yerine, beklendiği gibi harici site çalışır, böylece external.com/onlyforme içine doğru URL yönlendirilmesine bu istiyoruz.

Bunu nasıl yapabilirim?

Ben başka yapılandırma ifadeleri dışında, benim httpd.conf'a bu var: Ben Apache 2.2 çalıştırıyorum

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

.

cevap

2

herhangi sert kodlu URL döndü HTML örneğin içinde, yukarıda ProxyHTMLURLMap direktifleri bir çift eklemek incelemek için ve yeniden ihtiyaç

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> 

Ayrıca bakınız: http://wiki.uniformserver.com/index.php/Reverse_Proxy_Server:_mod_proxy_html

0

arober11 'ın cevabı büyük ölçüde benim benzer bir sorun çözme yardımcı oldu. Mümkün kuralların en kısa setine daraltmak için çalıştı ve kendi konfigürasyonu Etherpadhttps://my-domain-name.wtf/pad çalışan olması gereken her şey:

<Location /pad> 
    ProxyPass http://localhost:9001 retry=0 
    # retry=0 => avoid 503's when restarting etherpad-lite 
    ProxyPassReverse http://localhost:9001 
    SetOutputFilter proxy-html 
    ProxyHTMLURLMap http://localhost:9001 
</Location> 
RewriteRule ^/pad$ /pad/ [R] 
İlgili konular