URL umschreiben/umleiten
Jay Wasey
- webserver
0 suit0 Felix Riesterer
0 Sven Rautenberg
Server: Apache
OS: Windows Server 2003
Hallo,
ich suche nach einer Möglichkeit einem Apache-Server beizubringen eine URL umzuschreiben.
Wenn ein Benutzer auf Server (1) http://www.example.org/test gelangt wird auf einen anderen Server (2) verwiesen und in der Adresszeile des Browsers steht dann http://www.example.net/portals/test/main.php.
Dem Server 2 (example.net) würde ich gerne beibringen http://www.example.org/test bei allen internen Links stehenzulassen.
Wie ist das technisch möglich? Oder muss ich gar Server (1) diese Funktion beibringen?
Eine einfache "beschissene" Lösung wärer eine Iframe, aber ich dachte da eher an mod_rewrite oder Ähnliches.
Weiß jemand Rat?
Wie genau funktioniert das?
Herzlichen Dank,
Matt Wasej
Dem Server 2 (example.net) würde ich gerne beibringen http://www.example.org/test bei allen internen Links stehenzulassen.
Wie ist das technisch möglich? Oder muss ich gar Server (1) diese Funktion beibringen?
wen ich dich richtig verstanden habe, garnicht - ein url kann auf eine ressource umgeschrieben werden, woher soll der server wissen, welche der ressourcen aufgerufen wird, wenn die url immer gleich ist?
Eine einfache "beschissene" Lösung wärer eine Iframe, aber ich dachte da eher an mod_rewrite oder Ähnliches.
Lieber Matt Wasej,
ich suche nach einer Möglichkeit einem Apache-Server beizubringen eine URL umzuschreiben.
mod_rewrite ist eine phantastische Sache. Ich liebe es, seit ich ansatzweise damit umzugehen gelernt habe!
Wenn ein Benutzer auf Server (1) http://www.example.org/test gelangt wird auf einen anderen Server (2) verwiesen und in der Adresszeile des Browsers steht dann http://www.example.net/portals/test/main.php.
Also soll die "org"-TLD zu "net"-TLD umgeleitet werden. Soll die Umleitung 1:1 dem entsprechen, was unter "org" angefordert wurde, sodass tatsächlich "org" durch "net" ersetzt wird, oder soll alles unter "org" auf diese exakte URL unter "net" weitergeleitet werden?
Dem Server 2 (example.net) würde ich gerne beibringen http://www.example.org/test bei allen internen Links stehenzulassen.
Sprich, wenn es Resourcen auf dem Server sind, soll er brav ausspucken, was er hat? Das wäre auch ohne mod_rewrite möglich, da das ein erwartetes Standardverhalten eines Servers sein sollte.
Wie ist das technisch möglich? Oder muss ich gar Server (1) diese Funktion beibringen?
Server1 ist der mit "org", oder nicht? Der braucht eine Weiterleitung. Der zweite Server braucht nix. Anfragen an ihn betreffen ja ihn (sonst käme die Anfrage erst garnicht bei ihm an), sodass eine Weiterleitung unsinnig wäre.
Eine einfache "beschissene" Lösung wärer eine Iframe, aber ich dachte da eher an mod_rewrite oder Ähnliches.
Ja, mod_rewrite auf dem "Server1" klingt nach einer sinnvollen und verlässlichen Lösung.
WENN:
Wenn beide Domains auf ein- und denselben Server verweisen, dann kannst Du natürlich "dem Server" beibringen, dass er Anfragen an "org" auf "net" weiterleitet, Anfragen auf "net" aber direkt beantwortet. Das ist der Fall, in dem beide Anfragen bei ihm landen. Im oben geschilderten Falle handelt es sich aber anscheinend um zwei verschiedene Server, die jeweils eine der beiden Domains bereitstellen.
Wie genau funktioniert das?
Die sehr umfangreiche und nicht ganz einfach zu verstehende Anleitung findest Du in der Apache-Dokumentation. Zum besseren Verständnis haben die Leute dort auch einen Rewrite Guide im Angebot. Deutschsprachige Anleitungen findest Du über Google.
Liebe Grüße,
Felix Riesterer.
Wenn ein Benutzer auf Server (1) http://www.example.org/test gelangt wird auf einen anderen Server (2) verwiesen und in der Adresszeile des Browsers steht dann http://www.example.net/portals/test/main.php.
Also soll die "org"-TLD zu "net"-TLD umgeleitet werden. Soll die Umleitung 1:1 dem entsprechen, was unter "org" angefordert wurde, sodass tatsächlich "org" durch "net" ersetzt wird, oder soll alles unter "org" auf diese exakte URL unter "net" weitergeleitet werden?
Alle Daten auf welche die Benutzer zugreifen können (php-Dateien) liegen auf der "net"-TLD.
Sprich, wenn es Resourcen auf dem Server sind, soll er brav ausspucken, was er hat? Das wäre auch ohne mod_rewrite möglich, da das ein erwartetes Standardverhalten eines Servers sein sollte.
Der Benutzer geht auf die Seite http://www.example.org/test und ohne seines Wissens sollen die Daten, während die Adresse im Kopf immer gleich bleibt, von der "net"-TLD dargstellt werden.
Auch wenn er Links (interne, auf selbem Server) auf dem Server anwählt, soll in der Adresszeile http://www.example.org/test stehen bleiben...
Die einzige Lösung die ich weis, die genau das Verhalten zeigt, wäre eine Iframe auf der "org"-TLD, die als Ziel die "net"-TLD beinhaltet.
Server1 ist der mit "org", oder nicht?
Ja, richtig.
WENN:
Wenn beide Domains auf ein- und denselben Server verweisen, dann kannst Du natürlich "dem Server" beibringen, dass er Anfragen an "org" auf "net" weiterleitet, Anfragen auf "net" aber direkt beantwortet. Das ist der Fall, in dem beide Anfragen bei ihm landen.
Nein, es sind leider 2 Unterschiedliche Server.
Im oben geschilderten Falle handelt es sich aber anscheinend um zwei verschiedene Server, die jeweils eine der beiden Domains bereitstellen.
Das ist korrekt.
Ich danke dir für deine Hilfe!
Matt Jay
Hallo,
Der Benutzer geht auf die Seite http://www.example.org/test und ohne seines Wissens sollen die Daten, während die Adresse im Kopf immer gleich bleibt, von der "net"-TLD dargstellt werden.
Die einzige Lösung die ich weis, die genau das Verhalten zeigt, wäre eine Iframe auf der "org"-TLD, die als Ziel die "net"-TLD beinhaltet.
das würde eben nicht das leisten, was du möchtest - denn die abweichende Host-Adresse des iframes würde der Besucher ja auch wieder mitbekommen. Spätestens beim Hovern auf einem Link würde die abweichende Adresse in der Statuszeile auffallen.
Deswegen kommt eigentlich nur die Idee von Sven in Frage, den Server1 als Proxy zu nutzen.
So long,
Martin
Moin!
Wenn ein Benutzer auf Server (1) http://www.example.org/test gelangt wird auf einen anderen Server (2) verwiesen und in der Adresszeile des Browsers steht dann http://www.example.net/portals/test/main.php.
Dem Server 2 (example.net) würde ich gerne beibringen http://www.example.org/test bei allen internen Links stehenzulassen.
Wie ist das technisch möglich? Oder muss ich gar Server (1) diese Funktion beibringen?
Logischerweise ist Server 1 der Ansatzpunkt.
Allerdings wird die Lösung eventuell nicht ganz so ausfallen, wie du dir das ggf. wünschst. Denn wenn Server 1 in der URL bleiben soll, muß er auch die Inhalte liefern, die er sich (in der Funktionsweise als Proxy) selbst von Server 2 verschafft.
Anders ist das Problem nicht zu lösen.
- Sven Rautenberg
Allerdings wird die Lösung eventuell nicht ganz so ausfallen, wie du dir das ggf. wünschst. Denn wenn Server 1 in der URL bleiben soll, muß er auch die Inhalte liefern, die er sich (in der Funktionsweise als Proxy) selbst von Server 2 verschafft.
Anders ist das Problem nicht zu lösen.
Das habe ich mir schon gedacht.
Der Kunde des Servers1 ("org"-TLD") will jedoch nicht dass die Domain des Servers2 ("net"-TLD), auf welchem alle Daten liegen die ausgegeben werden, in der Adresszeile dargestellt wird.
Matt Jay