Peter: automatische Umleitung

Hallo an Alle die mir helfen können ;)

ich würde gerne eine automatische Umleitung starten, sobald der User eine bestimmte adresse eingibt z.B.

der User gibt in seine Adresszeile statt 'www.meine-seite.de' 'meine-seite.de' ein. Dann soll er automatisch zu 'www.meine-seite.de' umgeleitet werden.

Ich habe mal ein bischen sie SUFU genutzt und bin dabei auf 'mod_rewrite' gestoßen. Da ich den Bezügen jedoch ein noop bin, konnte ich dem Text nicht wirklich folgen, sodass sich einige Fragen auf tun:

1.) wie muss die Datei heißen, und wo lege ich diese ab?
2.) wie genau schaut der Inhalt der Datei aus?

Für den Inhalt habe ich jetzt folgendes herausziehen können:

[...
RewriteEngine on //damit schalte ich die Engine von Apache ein
...]
das war´s dann auch schon.
Mit folgenden Zeilen konnte ich wenig anfangen:

RewriteBase /xyz
->> Ist damit das Zielverzeichnis gemeint? In meinem Fall also www.meine-seite.de

RewriteRule ^(.*).htm$ $1.html
->> Oder gehört hier mein Zielverzeichnis hin?

Oder muss ich gar ganz was anderes nutzen?

Fragen über Fragen - ich warte erstmal Eure Antworten ab.

Vielen Dank vorab und Gruß

Peter

  1. Moin!

    der User gibt in seine Adresszeile statt 'www.meine-seite.de' 'meine-seite.de' ein. Dann soll er automatisch zu 'www.meine-seite.de' umgeleitet werden.

    Ich mach das so:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^fastix.de$
    RewriteRule ^(.*)$ http://www.fastix.de/$1 [L,R=301]

    in einer Datei mit dem Name .htaccess

    Bekommst Du einen FEHLER 500, dann

    • hast Dich vertippt oder
    • ist mod_rewrite nicht installiert oder
    • Dein Hoster will es nicht.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. @fastix

      Klasse, das geht soweit - vielen Tag für die prompte Hilfe!

      ebenso MFFG ;)

      Peter

  2. Sorry für den Ausrutscher des Doppelpostings und achja, die Glaskugel ist ja gestern schon geschmolzen... ;)

    Zitat von EKKi
    [
    bitte beachte in Zukunft RFC 2606, der eindeutig beschreibt, wie Beispieldomains aufgebaut sind. Die von Dir benutzte ist bereits registriert und ich bezweifle, dass der Inhaber es gern sieht, wenn Du seine Domain missbrauchst.
    ]
    vielen Dank für den Hinweis, ich werde in zukunft 'example-page.com' nehmen.
    [
    Das bedeutet, dass immer wenn der HTTP_HOST *exakt* "example.com" lautet, die Anfrage umgeleitet wird.
    ]
    okay, wie müsste es aussehen wenn es nicht exakt, sondern so oder ähnlich lautet?
    [
    Du willst vermutlich eher den Fall, dass die Umleitung erfolgt, wenn der HTTP_HOST mit "example.com" *aufhört* und sich davor noch beliebige Zeichen befinden ... richtig geraten?
    [
    Zum einen richtig, aber sollte der User z.B. 'example-page.com/(sonstirgendwas) eingeben, soll auch dieses (sonstirgendwas übernommen werden.
    Und noch eine Herausforderung ist, dass er auch bei der Eingabe von 'examplepage.com' entsprechend weitergeletiet werden soll.
    Ist also etwas umfangreicher, was es da alles für Eingabemöglichkeiten zu berücksichtigen galt.
    [
    Und wenn der Benutzer jetzt "www.example.com" eingibt, soll er dann zu "https://www.www.example.com" weitergeleitet werden?
    ]
    Natürlich nicht. Dann soll das eine www natürlich weg bleiben. ;)
    [
    Richtig: so geht's nicht. Das sagt uns nämlich *gar nichts*. Was verstehst Du unter "Fallbeispiele"? *Was genau* hast Du eingetragen? Wohin wird umgeleitet?
    ]
    Mit Fallbeispielen habe ich gemeint, dass ich alle möglichen Variationen unterinander weg geschrieben habe z.B.

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example-page.com.de$
    RewriteRule ^(.*)$ https://www.example-page.com/$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^examplepage.com.de$
    RewriteRule ^(.*)$ https://www.example-page.com/$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^www.example-page.com.com$
    RewriteRule ^(.*)$ https://www.example-page.com.com/$1 [L,R=301]

    Gruß

    Peter

    1. 'ǝɯɐu$ ıɥ

      [
      bitte beachte in Zukunft RFC 2606, der eindeutig beschreibt, wie Beispieldomains aufgebaut sind. Die von Dir benutzte ist bereits registriert und ich bezweifle, dass der Inhaber es gern sieht, wenn Du seine Domain missbrauchst.
      ]
      vielen Dank für den Hinweis, ich werde in zukunft 'example-page.com' nehmen.

      Hast du auch verstanden was da steht? z.b. example.com und nicht irgendwas erfundenes, die domain example-page.com ist zwar noch frei, das kann sich aber ändern.

      ssnɹƃ
      ʍopɐɥs

      --
      I like children. If they're properly cooked.
      - W.C. Fields
      1. Hast du auch verstanden was da steht? z.b. example.com und nicht irgendwas erfundenes, die domain example-page.com ist zwar noch frei, das kann sich aber ändern.

        und 'example.com' ist allgemein erlaubt zu nutzen oder wie darf ich das verstehen?

        @ EKKi es war recht schwer Dich zu zitieren, wenn ich nicht direkt auf Deine Aussage antworten darf, sondern diese wieder in meinem alten Post auftauchen muss, weil ich hier ja sonst auf´m deckel bekomme, weil ich einen Doppelpost aufrecht halte, wobei dass meiner Meinung nach auch ansichtssache ist, da ich ja inzwischen EINE Eingabe auf eine ander Domain umleiten kann, womit meine Frage des alten Posts beantwortet ist.

        Sicherlich kann man nun diesen Post für meine 2.Frage weiternutzen, dem ganzen aber ein Doppelpost zu unterstellen finde ich dann doch etwas engstirnig.
        Außerdem wäre es nicht da erstemal, dass eine aktuelle Frage in einem Post von vor einigen Tagen völlig unbeachtet und somit unbantwortet bleibt. ist mir hier schon ein paar mal passiert.

        Aber egel, resetten wir einfach mal und kommen wir zum eigentlichen Thema bzw. meiner 2.Problemstellung zurück. Ich werde mich jetzt mit EKKi´s Antwort auseinander setzen und mal schauen, ob ich da schlau draus werde ;)
        Beim ersten übefliegen sah das schon sehr brauchbar aus. Der Link führt leider zu einer Englischsprachigen Seite was das ganze nochmal wesentlich erschwert, da ich das ganze ja selbst in Deutsch noch nicht verstanden habe.
        Aber ich werd´s versuchen...

        Melde mich dann wieder - in diesem Post...

        Gruß Peter

        1. 'ǝɯɐu$ ıɥ

          und 'example.com' ist allgemein erlaubt zu nutzen oder wie darf ich das verstehen?

          Ja, example.com ist erlaubt, genauso wie:

          example.com
          example.net
          example.org

          die wurden extra reserviert um als Beispieldomains genutzt zu werden, außerdem sind noch folgende TLDs reserviert:

          .test
          .example
          .invalid

          Erklärung findest du hier: http://www.faqs.org/rfcs/rfc2606.html unter Punkt2.

          ssnɹƃ
          ʍopɐɥs

          --
          I like children. If they're properly cooked.
          - W.C. Fields
          1. Hi,

            und wenn ich ein Beispiel bringen möchte mit einem Bindstrich in meiner daomain-Adresse? Was darf ich dann schreiben - ist ja in der Praxis auch kein seltener Fall.

            Gruß

            Peter

            1. Mahlzeit Peter,

              und wenn ich ein Beispiel bringen möchte mit einem Bindstrich in meiner daomain-Adresse?

              Wozu brauchst Du das? Ein Beispiel ist ein Beispiel und der Name daher vollkommen irrelevant. Es geht lediglich darum, dass in Beispielen keine Domains verwendet werden sollten, die tatsächlich existieren könnten.

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            2. 'ǝɯɐu$ ıɥ

              und wenn ich ein Beispiel bringen möchte mit einem Bindstrich in meiner daomain-Adresse? Was darf ich dann schreiben - ist ja in der Praxis auch kein seltener Fall.

              hast du auch nur ein wort von dem verstanden was ich schrieb?

              diese TLDs sind für beispiele reserviert:

              .test
              .example
              .invalid

              soll heißen, du kannst damit zb folgendes zusammensetzen:

              ich-kann-nicht-richtig-lesen.invalid
              verstehen-muss-ich-noch-ueben.test
              hopfen-und-malz-ist-bei-mir-noch-nicht-verloren.example

              ssnɹƃ
              ʍopɐɥs

              --
              I like children. If they're properly cooked.
              - W.C. Fields
        2. 'ǝɯɐu$ ıɥ

          Wer´s nicht im Kopf hat,....

          Beim ersten übefliegen sah das schon sehr brauchbar aus. Der Link führt leider zu einer Englischsprachigen Seite was das ganze nochmal wesentlich erschwert, da ich das ganze ja selbst in Deutsch noch nicht verstanden habe.
          Aber ich werd´s versuchen...

          Vlt. hilft dir das:

          http://url-rewriting.de/
          http://www.modrewrite.de/

          ssnɹƃ
          ʍopɐɥs

          --
          I like children. If they're properly cooked.
          - W.C. Fields
        3. Mahlzeit Peter,

          und 'example.com' ist allgemein erlaubt zu nutzen oder wie darf ich das verstehen?

          Nicht nur die ... das kannst Du alles im entsprechenden RFC nachlesen.

          weil ich hier ja sonst auf´m deckel bekomme, weil ich einen Doppelpost aufrecht halte, wobei dass meiner Meinung nach auch ansichtssache ist, da ich ja inzwischen EINE Eingabe auf eine ander Domain umleiten kann, womit meine Frage des alten Posts beantwortet ist.

          [ ] Du hast die Begründung, *warum* Doppelpostings nicht erwünscht sind, gelesen und verstanden.

          Diese Diskussion ist im Übrigen so alt wie das Forum selbst und daher müßig und hinfällig. Du wirst die Sichtweise der Mehrheit der regelmäßigen Forumsnutzer nicht ändern können. Akzeptiere die hier üblichen Gepflogenheiten.

          Beim ersten übefliegen sah das schon sehr brauchbar aus. Der Link führt leider zu einer Englischsprachigen Seite was das ganze nochmal wesentlich erschwert, da ich das ganze ja selbst in Deutsch noch nicht verstanden habe.

          Das mag daran liegen, dass ein Großteil des Internets bzw. World Wide Webs entweder in den USA (einem bekanntermaßen englischsprachigen Land) bzw. von international zusammenarbeitenden (Computer-)Wissenschaftlern (und die heutige Sprache der Wissenschaft ist nun einmal Englisch) entwickelt wurde. Du wirst also nicht darum herumkommen, englischsprachige Literatur lesen zu müssen, wenn Du tiefer in die Materie eintauchen willst.

          Webentwicklung und Server-Administration betreiben zu wollen und kein Englisch zu können bzw. sich nicht mit Englisch auseinandersetzen zu wollen ist keine wirklich erfolgversprechende Kombination.

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    2. Mahlzeit Peter,

      Zitat von EKKi
      [

      Könntest Du bitte die Zitatzeichen einfach so lassen, wie sie sind? Ansonsten wird nämlich nur unverständliches Kauderwelsch angezeigt, bei dem keiner mehr durchblickt, was jetzt eigentlich von wem geschrieben wurde.

      vielen Dank für den Hinweis, ich werde in zukunft 'example-page.com' nehmen.

      Dass das Blödsinn ist, hat Shadowcrow ja bereits geschrieben.

      Das bedeutet, dass immer wenn der HTTP_HOST *exakt* "example.com" lautet, die Anfrage umgeleitet wird.

      okay, wie müsste es aussehen wenn es nicht exakt, sondern so oder ähnlich lautet?

      Dazu sind Grundlagen im Verständnis von regulären Ausdrücken erforderlich. Da Du diese nicht zu haben scheinst, frage ich mich gerade, woher Du die von Dir verwendeten Ausdrücke hast ...

      Das Zeichen ^ bedeutet in einem regulären Ausdruck gemeinhin "Anfang des Strings", das Zeichen $ steht für "Ende des Strings".

      Der Ausdruck "^example.com$" bedeutet also "ein String, der genau 'example.com' enthält und davor nichts und dahinter nichts". Wie müsste der Ausdruck also aussehen, wenn ich will, dass "example.com" am Ende steht und davor beliebige Zeichen erlaubt sind?

      Zum einen richtig, aber sollte der User z.B. 'example-page.com/(sonstirgendwas) eingeben, soll auch dieses (sonstirgendwas übernommen werden.

      Zuerst einmal geht es um den HTTP_HOST, da sind Pfadangaben im Moment noch nicht so wichtig.

      Schalten wir also erst einmal das Rewriting ein:

      RewriteEngine on

      Dann legen wir die Bedingung fest (wenn der HTTP_HOST mit der Zeichenkette "example.com" aufhört, d.h. wenn anschließend nichts mehr kommt):

      RewriteCond %{HTTP_HOST} example.com$

      Jetzt kommen alle Regeln, die ausgeführt werden sollen, wenn die o.g. Bedingung zutrifft - z.B. "leite alle Anfragen mir *irgendeinem* Pfad an eine bestimmte Domain weiter":

      RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

      Mir scheint, dass Dir noch *wesentlichste* Grundlagenkenntnisse der Rewrite-Engine des Apachen fehlen: hole diese nach! Jetzt!

      Achja: und mit "Programmiertechnik" hat Deine Anforderung überhaupt gar nichts zu tun - es geht um die Konfguration des Webservers.

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. Hallo EKKi,

        nachdem was ich da jetzt so lesen konnte habe ich folgende Variante ausgetüftelt:

        RewriteCond %{HTTP_HOST} .*example.?alias.org

        Ich nehme das mal zu meinem Verständnis auseinander, damit Du sehen kannst, wie meine Gedankengänge sind.

        1. 'RewriteCond %{HTTP_HOST}' ist soweit klar
        2. '.*' kann keins oder mehrere belibige Zeichen sein
        3. 'example' steht für example
        4. '.?' steht für ein oder kein Zeichen
        5. 'alias' steht für alias
        6. '.' steht für .
        7. 'org' steht für org

        demnach müsste die Bedingung doch bei folgenden Eingaben zutreffen:
        'www.examplealias.org'
        'www.example-alias.org'
        'examplealias.org'
        'example-alias.org'

        Nachdem ich diese Variante mal ausprobiert habe, kam folgende Fehlermeldung:
        "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

        Das leuchtet ja auch ein, weil ja auch das Ziel, also 'https://www.example-alias.org' die Bedingung erfüllt.

        Wie gehe ich jetzt weiter vor, dass er die Zieladresse nicht weiterleitet?

        Gruß Peter und schon mal Danke für diese ausführliche Hilfe

        1. Mahlzeit Peter,

          RewriteCond %{HTTP_HOST} .*example.?alias.org

          1. '.*' kann keins oder mehrere belibige Zeichen sein

          Ist aber überflüssig.

          1. 'org' steht für org

          Du solltest jetzt aber zum Schluss noch angeben, dass hinter dem "org" nichts mehr kommt ... durch Angabe von "$". Ansonsten würde auch folgender Host akzeptiert:

          www.example-alias.org.foo.bar.example.com

          demnach müsste die Bedingung doch bei folgenden Eingaben zutreffen:
          'www.examplealias.org'
          'www.example-alias.org'
          'examplealias.org'
          'example-alias.org'

          Richtig.

          Nachdem ich diese Variante mal ausprobiert habe, kam folgende Fehlermeldung:
          "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

          Das wiederum kann ich nicht nachvollziehen, da Du lediglich die Rewrite-Bedingung, nicht aber die Rewrite-Regel gezeigt hast. Gewöhne Dir bitte an, *vollständige* Beispiele bzw. Problembeschreibung zu posten.

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          1. Hallo Ekki - vielleicht bist Du ja noch da ;)

            Das wiederum kann ich nicht nachvollziehen, da Du lediglich die Rewrite-Bedingung, nicht aber die Rewrite-Regel gezeigt hast. Gewöhne Dir bitte an, *vollständige* Beispiele bzw. Problembeschreibung zu posten.

            Ich habe jetzt folgenden Text in der .htaccess stehen:
            [..
            RewriteEngine on
            RewriteCond %{HTTP_HOST} example.?alias.org$
            RewriteRule ^(.*)$ https://www.example-alias.org/$1 [L,R=301]
            ..]

            Wenn ich nun in meine Adresszeile 'examplealias.org' eingebe erscheint folgende Fehlermeldung:

            Fehler: Umleitungsfehler
            [...
            Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.
            ...]

            Meine Schlußfolgerung:
            Apache sieht die Bedingung als erfüllt an und ruft mit der Zieladresse erneut meine Seite auf. Daruaf hin wird erneut die .htaccess-Bedingung erfüllt und er leitet erneut zur Zieladresse und der Rattenschwanz nimmt seinen Lauf.

            Hast Du noch eine andere Idee oder einen Vorschlag, wie ich mein Problem Lösen kann?

            Gruß Peter

            1. Hallo,

              RewriteEngine on
              RewriteCond %{HTTP_HOST} example.?alias.org$
              RewriteRule ^(.*)$ https://www.example-alias.org/$1 [L,R=301]

              Wenn ich nun in meine Adresszeile 'examplealias.org' eingebe ...

              ... wird das zu https://www.example-alias.org/examplealias.org weitergeleitet. Allerdings passt der Hostname www.example-alias.org auch wieder auf die RewriteCond, so dass die Weiterleitung wiederum greift.

              erscheint folgende Fehlermeldung:
              Fehler: Umleitungsfehler
              Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

              Ja, dein Browser ist schlau. Er merkt, dass er auf eine Adresse umgeleitet werden soll, die er gerade schon einmal angefragt hat und kommt zu dem Ergebnis, dass jemand ihn verarschen will.
              Weniger schlaue Browser, etwa der IE, sind in einer endlosen Redirect-Schleife gefangen.

              Meine Schlußfolgerung:
              Apache sieht die Bedingung als erfüllt an und ruft mit der Zieladresse erneut meine Seite auf.

              Nein, das tut dein Browser. Apache sagt ihm nur, wohin.

              Ciao,
               Martin

              --
              Die späteren Ehen sind oft glücklicher als die erste, weil das natürliche Ende bereits absehbar ist.
                (George Bernhard Shaw)
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Hat Martin - doch noch spät einer unterwgens ;)

                hast Du denn nun auch noch ein Tipp für mich, wie das Problem lösen kann?

                Gruß

          2. Also die folgende Varianten deckt bisher am meisten ab:

            RewriteEngine on
            RewriteCond %{HTTP_HOST} !^www.aventuria-medien.de
            RewriteRule ^(.*)$ https://www.aventuria-medien.de%{REQUEST_URI} [R,L]

            Kann man nicht auch generell sagen dass die RewriteRule aufgerufen werden soll? Es gibt ja ehe kein User der 'https...' eingibt. Vondaher wäre das die einfachste Lösung.

            Ist sowas auch möglich?