Tobias233: URL Umleitung

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

  1. 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

    1. @@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'

      --
      Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
      1. 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

        1. 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

          1. @@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'

            --
            Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
            1. 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 doch RewriteCond und RewriteRule her.

              Qapla'

              1. Hat keiner eine Lösung?

                1. @@Tobias233:

                  nuqneH

                  Hat keiner eine Lösung?

                  Doch, ich hatte dir eine genannt. Was haben deine Recherchen bezüglich RewriteCond ergeben?

                  Qapla'

                  --
                  Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
                  1. 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'

                    1. @@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!

                      --
                      Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
                      1. 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.

                        1. 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.

        2. @@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'

          --
          Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
          1. 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

            1. @@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'

              --
              Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)