2009-11-09 3 views
9

Ist es möglich, mit mod_rewrite Adressen auf einem anderen Server aufzulösen?Mod-Rewrite-Regel für externe Seiten?

Sagen wir, ich einrichten möchten diese URL:

http://www.myserver.com/myfolder/ 

zu beheben tatsächlich:

http://www.anotherserver.com/anotherfolder/ 

Wenn ja, können Sie ein RewriteRule Beispiel bieten könnte?

-Danke

Antwort

17

Sie können die P flag in einer mod_rewrite Regel verwenden, dass die Substitution URL von mod_proxy angefordert zu bekommen:

RewriteEngine on 
RewriteRule ^myfolder/$ http://other.example.com/anotherfolder/ [P] 

Nun, wenn ein Client /myfolder/ vom Server anfordert, wird es http://other.example.com/anotherfolder/ fordern und die Antwort, dass senden Server zurück zum Client.

+1

Beachten Sie, dass Sie jetzt auch mod_proxy_http Modul enthalten müssen. – Christian

+0

@Christian können Sie weitere Details mit dem, was Sie mit "include mod_proxy_http Modul" bedeuten? – user1111929

+0

Hi @ user1111929, siehe hier; https://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html - Dieses Modul muss aktiviert sein, bevor das Neuschreiben funktioniert. – Christian

3

Nein, Tunneln nicht möglich sind, sollten Sie einen CGI-Skript für diese verwenden. Sie können jedoch umleiten:

RewriteRule ^(.*) http://new.example.com/$1 

mit oder ohne [R] Flagge, und es wird den Benutzer automatisch auf die neue Domain umgeleitet werden.

Edit: Offenbar ist es möglich, Tunnel-Anfragen mit mod_proxy und der [P] Flagge. Siehe Gumbo's Antwort.

+0

Cooler Dank, würde der Benutzer die Aktualisierung in diesem Fall sehen? (zB: Adressleiste wird http://new.example.com angezeigt). Wenn du sagst, dass ich ein CGI-Skript benötige, kannst du mir ein paar Hinweise geben, wonach ich suchen sollte? Prost – sthg

+0

Ja, der Benutzer würde die neue URL sehen. Wenn Sie dies nicht möchten, googlen Sie (oder suchen Sie in StackOverflow) nach "Proxy-Software". – Boldewyn

+0

Großartig - danke Kumpel. – sthg

-2

Hey habe ich versucht, Umschreiben und hat nicht funktioniert (nur in localhost getestet)

Auch finde ich diese einfache Art und Weise

Redirect /myfolder external_url