URL Umleitung
Tobias233
- sonstiges
Hallo,
eventuell kann mir ja hier jemand bei folgendem Problem weiterhelfen, da ich in mod_rewrite relativ Unerfahren bin.
Ich habe zwei Domains die jeweils auf ein Verzeichnis zeigen. Nun möchte ich aber dass alle Aufrufe die von example1.de kommen an example2.de weitergeleitet werden. Sprich es soll auch folgende Weiterleitung funktionieren: example1.de/test --> example2.de/test
Wie kann ich das realisieren?
Ich habe bisher folgendes, was aber nicht funktioniert:
RewriteRule ^http://www.example1.de/(.*)$ http://www.example2.de/$1 [L]
Tobias233
Moin,
Ich habe bisher folgendes, was aber nicht funktioniert:
RewriteRule ^http://www.example1.de/(.*)$ http://www.example2.de/$1 [L]
Versuch es mal so:
RewriteRule ^(.*)$ http://www.example2.de/$1 [L]
Grüße Marco
@@misterunknown:
nuqneH
Versuch es mal so:
RewriteRule ^(.*)$ http://www.example2.de/$1 [L]
Nein.
“mod_rewrite should be considered a last resort, when other alternatives are found wanting. Using it when there are simpler alternatives leads to configurations which are confusing, fragile, and hard to maintain. Understanding what other alternatives are available is a very important step towards mod_rewrite mastery.” [When not to use mod_rewrite]
[link:http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect@title=Redirect]
ist das Mittel der Wahl.
Qapla'
Moin,
[link:http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect@title=Redirect]
ist das Mittel der Wahl.
Man lernt nie aus :)
Es wäre also so richtiger?!
RedirectMatch (.*)$ http://www.example.com/$1
Grüße Marco
Hallo,
@misterunknown: Deine erste Lösung hatte ich auch schon, das Problem ist dabei nur dass ein Umleitungsfehler entsteht, da ja beide Domains auf das gleiche Verzeichnis zeigen. Das heißt der Redirect funktioniert zwar theoretisch korrekt, nur wird er immer wieder ausgeführt. Der Redirect soll also nur auf Anfragen von example1.de reagieren, nicht aber auf Anfragen von example2.de (denn die sind ja korrekt).
Tobias233
Moin,
[link:http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect@title=Redirect]
ist das Mittel der Wahl.Man lernt nie aus :)
Es wäre also so richtiger?!
RedirectMatch (.*)$ http://www.example.com/$1
Grüße Marco
@@Tobias233:
nuqneH
Der Redirect soll also nur auf Anfragen von example1.de reagieren, nicht aber auf Anfragen von example2.de (denn die sind ja korrekt).
Welche Apache-Version hast du (dein Hoster) am Laufen?
Ab 2.4 gibt es <If>
. Darunter muss vielleicht doch RewriteCond
und RewriteRule
her.
Qapla'
Hallo,
die Version von Apache ist 2.2.16.
Tobias233
@@Tobias233:
nuqneH
Der Redirect soll also nur auf Anfragen von example1.de reagieren, nicht aber auf Anfragen von example2.de (denn die sind ja korrekt).
Welche Apache-Version hast du (dein Hoster) am Laufen?
Ab 2.4 gibt es
<If>
. Darunter muss vielleicht dochRewriteCond
undRewriteRule
her.Qapla'
Hat keiner eine Lösung?
@@Tobias233:
nuqneH
Hat keiner eine Lösung?
Doch, ich hatte dir eine genannt. Was haben deine Recherchen bezüglich RewriteCond
ergeben?
Qapla'
Hallo,
RewriteCond kann ich dazu nutzen um Bedingungen aufzustellen. Es harpert nur an der Verknüpfung der RewriteCond mit der RewriteRule.
Tobias233
@@Tobias233:
nuqneH
Hat keiner eine Lösung?
Doch, ich hatte dir eine genannt. Was haben deine Recherchen bezüglich
RewriteCond
ergeben?Qapla'
@@Tobias233:
nuqneH
RewriteCond kann ich dazu nutzen um Bedingungen aufzustellen. Es harpert nur an der Verknüpfung der RewriteCond mit der RewriteRule.
Dann ziel mal mit deiner Hapune darauf.
Qapla'
PS: Und bitte kein TOFU!
Hätte das ja wie folgt gelöst, aber leider funktioniert dabei irgendwas nicht.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example2.de$
RewriteRule ^(.*)$ http://www.example2.de/$1 [L,R=301]
Der Code besagt ja einfach, wird eine Domain aufgerufen, die nicht example2.de entspricht, leite den Aufruf an example2.de mit eventuellen URI (example2.de/URI) weiter.
Okay, mein Fehler. Ich hatte noch eine externe Weiterleitung aktiv. Der unten aufgeführte Code funktioniert einwandfrei. Vielen Dank an alle, die bei der Problemlösung beteiligt waren.
Hätte das ja wie folgt gelöst, aber leider funktioniert dabei irgendwas nicht.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example2.de$
RewriteRule ^(.*)$ http://www.example2.de/$1 [L,R=301]Der Code besagt ja einfach, wird eine Domain aufgerufen, die nicht example2.de entspricht, leite den Aufruf an example2.de mit eventuellen URI (example2.de/URI) weiter.
@@misterunknown:
nuqneH
Man lernt nie aus :)
Lesen? >;-)
Es wäre also so richtiger?!
RedirectMatch (.*)$ http://www.example.com/$1
Das erste Beispiel an verlinkter Stelle sieht anders aus.
Qapla'
Moin,
Das erste Beispiel an verlinkter Stelle sieht anders aus.
Das stimmt zwar, ist aber nur eine statische Umleitung ohne RegEx-Interpretation, wenn ich das richtig verstehe.
Grüße Marco
@@misterunknown:
nuqneH
Das erste Beispiel an verlinkter Stelle sieht anders aus.
Das stimmt zwar, ist aber nur eine statische Umleitung ohne RegEx-Interpretation, wenn ich das richtig verstehe.
Verstehst du nicht. Du brauchst kein RegEx.
Steht doch da: „Then any request beginning with URL-Path will return a redirect request to the client at the location of the target URL. Additional path information beyond the matched URL-Path will be appended to the target URL.“
Qapla'