2009-04-17 9 views
3

Ich habe eine einfache Rewrite-Regel, die auf eine externe Domäne schreibt mit dem Helicon Isapi_Rewrite 3 RewriteProxy derictive.'Masking' externe URL-Links mit RewriteProxy derictive

Beispiel: RewriteProxy Blog http://blog.com

jedoch Links auf der externen Seite nicht durch den Proxy maskiert, wie ich sie erwartet hätte zu sein. Sie zeigen immer noch auf http://blog.com/link1 statt http://mysite/blog/link1.

Könnte mir jemand in die richtige Richtung eine Lösung dafür zeigen?

Dank

Antwort

3

Diese Diskussion über die Helicon Tech Foren das gleiche Problem behebt. http://www.helicontech.com/forum/8460-rewrite_proxy_to_2d_machine.html

Das erste Beispiel sieht ISAPI Code 2 Rewrite, aber der Faden umfasst ISAPI Rewrite 3 Syntax weiter unten auf der Seite. Hier ist eine Anpassung ihrer Version 3 Code für Ihr Beispiel.

RewriteEngine on 
RewriteBase/
RewriteRule ^blog$ http://mysite/blog/ [NC,R=301] 
RewriteProxy ^/blog(/.*)?$ http\://blog.com$1 [NC,U] 

(Dies ist nicht getestet, weil ich ISAPI Rewrite 2. leite) Beachten Sie, dass ich einige Tücken getroffen, als Proxy eine andere Website unter meinem „main“ Domain rückgängig zu versuchen. Sie könnten diese Probleme auch entdecken.

1) Nicht Relative Links

Sofern der Antrag nicht vom Boden codiert worden bis Proxying zu übernehmen umkehren, fand ich es wahrscheinlich zu brechen. Eine knochige HTML-Seite mit allen relativen Links funktioniert. Die Bereitstellung von HTML über einen Reverseproxy, der diesen Code enthält, wird jedoch auf http://mysite/page_from_the_root.html abgebildet. ISAPI Rewrite weiß nicht, dass Anforderung abfangen, aber es wäre Proxy-Inhalt, wenn der Browser des Benutzers getroffen http://mysite/blog/page_from_the_root.html

2) Plätzchen

Blog.com könnte Cookies von der blog.com Domäne schreiben. Eine über die MySite-Domain gelieferte Seite kann möglicherweise nicht auf diese Cookies zugreifen, abhängig von den Browsereinstellungen des Nutzers.

3) JavaScript und AJAX

4) SSL-Zertifikate