Verzweifelnder: Weiterleitung von Domain zu Domain

Hallo Forum!

Ich werde mir in Kürze mehrere Domains für ein bestimmtes Projekt zulegen.

Angenommen, das Projekt selbst hat die URL projekt.com und 3 weitere Domains haben ähnlichen Namen, zB. das-projekt.com, mein-projekt.com und dasprojekt.com.

Nun möchte ich auf den 3 weiteren Domains, dass jede Anfrage, also nicht nur die Haupt-URL, sondern auch zB. das-projekt.com/foo oder mein-projekt.com/bar.php usw. auf https://projekt.com umgeleitet wird.

Kann mir bitte wer sagen, was da in der .htaccess Datei jeweils nach dem

RewriteEngine On
RewriteBase /

der kürzestmögliche Code ist, um jegliche Anfrage an die Domain jeweils auf die Hauptdomain umzuleiten.

Danke im Voraus

Der Verzweifelnde

  1. Moin

    Kann mir bitte wer sagen, was da in der .htaccess Datei jeweils nach dem

    RewriteEngine On
    RewriteBase /
    

    der kürzestmögliche Code ist, um jegliche Anfrage an die Domain jeweils auf die Hauptdomain umzuleiten.

    die Verwendung von mod_alias anstelle von Rewrite.

    Viele Grüße
    Robert

    1. Hallo Robert!

      Das war mir jetzt leider keine Hilfe für mich. Ich sitze als völlig Unwissender zu dem Thema vor einer englischen Technik-Dokumentation und hab jetzt keine Ahnung, was ich tun soll.

      Ich sehe auch nur Möglichkeiten für Umleitungen zu einer anderen URL für spezifische Anforderungen bestimmter Ressourcen. Aber was ich möchte, ist ja, dass JEDE Anfrage an die Domain, unabhängig davon, ob etwas oder was an die Domain angehängt ist, an https://projekt.com umgeleitet wird.

      Liebe Grüße

      Der Verzweifelnde

      1. Moin,

        Das war mir jetzt leider keine Hilfe für mich. Ich sitze als völlig Unwissender zu dem Thema vor einer englischen Technik-Dokumentation und hab jetzt keine Ahnung, was ich tun soll.

        Nun ja, „rewrite“ und „rule“ sind jetzt ja auch schon englische Wörter …

        Übersetzen wir doch einmal das zweite Beispiel ins Deutsche:

        Um http URLs auf https umzuleiten:

        <VirtualHost *:80>
            ServerName www.example.com
            Redirect "/" "https://www.example.com/"
        </VirtualHost>
        

        Damit werden alle URLs der Form http://www.example.com/* umgeleitet auf https://www.example.com/*. Was müsste da wohl geändert werden, damit deine Anforderung erfüllt ist?

        Viele Grüße
        Robert

      2. Hallo,

        Aber was ich möchte, ist ja, dass JEDE Anfrage an die Domain, unabhängig davon, ob etwas oder was an die Domain angehängt ist, an https://projekt.com umgeleitet wird.

        ich glaube nicht, dass du das möchtest, denn das wäre sehr ärgerlich für deine Besucher. Das ist genauso ärgerlich, als wenn der Aufruf einer nicht existierenden Seite einfach aufs Domain Root umgeleitet wird, anstatt sauber eine 404-Fehlerseite unter der angefragten URL zu senden.

        Was du hoffentlich möchtest, ist eine Umleitung von http://example.org/foo/bar/baz.html auf https://example.com/foo/bar/baz.html - also auf dieselbe lokale Adresse auf der von dir gewünschten Hauptdomain.

        Einen schönen Tag noch
         Martin

        --
        Was ist der schnellste Weg von einem Suchtreffer zum nächsten?
        Ein Googlehupf.
        1. Hallo Martin,

          Was du hoffentlich möchtest, ist eine Umleitung von http://example.org/foo/bar/baz.html auf https://example.com/foo/bar/baz.html

          Nicht nur. Was er aus meiner Sicht möchte, ist eine Umleitung von

          http://example.org/foo/bar/baz.html
          http://the-example.org/foo/bar/baz.html
          http://my-example.org/foo/bar/baz.html
          https://the-example.org/foo/bar/baz.html
          https://my-example.org/foo/bar/baz.html
          

          an

          https://example.org/foo/bar/baz.html
          

          Ob dafür example.org, the-example.org und my-example.org im Medizinbeutel des gleichen Indianerhäuptlings stecken, hat er nicht gesagt; das müsste noch klargestellt werden.

          Mein Apache-Vokabular ist für diese Anweisung jedenfalls zu bescheiden.

          Rolf

          --
          sumpsi - posui - obstruxi
          1. Hallo Rolf,

            Was du hoffentlich möchtest, ist eine Umleitung von http://example.org/foo/bar/baz.html auf https://example.com/foo/bar/baz.html

            Nicht nur. Was er aus meiner Sicht möchte, ist eine Umleitung von

            http://example.org/foo/bar/baz.html
            http://the-example.org/foo/bar/baz.html
            http://my-example.org/foo/bar/baz.html
            https://the-example.org/foo/bar/baz.html
            https://my-example.org/foo/bar/baz.html
            

            an

            https://example.org/foo/bar/baz.html
            

            ja, ich habe mich auf eine Domain beschränkt, weil ich nur herausstellen wollte, dass man bitte nicht stur auf das Wurzelverzeichnis der Hauptdomain leiten soll, wenn der Besucher eigentlich schon glaubt, am Ziel zu sein.

            Ob dafür example.org, the-example.org und my-example.org im Medizinbeutel des gleichen Indianerhäuptlings stecken, hat er nicht gesagt; das müsste noch klargestellt werden.

            Die Frage poppte bei mir auch auf, war aber für meinen Aspekt erstmal belanglos.

            Einen schönen Tag noch
             Martin

            --
            Was ist der schnellste Weg von einem Suchtreffer zum nächsten?
            Ein Googlehupf.
            1. Nein, das möchte ich alles nicht. Ich möchte, wie geschrieben, dass JEDE Anfrage an eine der 3 zusätzlichen Domains auf https://projekt.com umgeleitet wird.

              Ein Besucher auf den 3 "falschen" Seiten kann nicht glauben, "am Ziel zu sein", weil es keine dieser 3 Domains je gegeben hat. Es geht primär darum, dass sich die Domains sehr ähnlich sind und ich nicht möchte, dass die sich ein anderer nimmt.

              Die 3 Domains scheinen nirgendwo auf, es gibt auch nirgendwo einen Link zu den 3 Domains. Die 3 Domains haben und hatten nie einen Inhalt. Und ich will schlicht und einfach, dass WENN wer mal auf die Idee kommen sollte, die URLs aufzurufen, dass der dann auf der"richtigen" Seite landet.

              Ich bitte also nochmals um Hilfe, wie das in der kürzestmöglichen Art in der .htaccess Datei zu bewerkstelligen ist.

              1. Moin,

                Ich bitte also nochmals um Hilfe, wie das in der kürzestmöglichen Art in der .htaccess Datei zu bewerkstelligen ist.

                Siehe.

                Viele Grüße
                Robert

                1. Durch Zufall bin ich jetzt draufgekommen, dass es sich da um etwas handelt, was in die Serverkonfiguration kommt. Und ich habe natürlich als Durchschnitts-User einen ganz normalen Shared Webspace und KEINEN angemieteten Server.

                  Habe mich jetzt also seit gestern 3 Stunden völlig umsonst damit beschäftigt und mich gefragt, wieso ich damit nur Fehlermeldungen bekomme. Es bleibt dabei, dass ich Hilfe für die Med Rewrite Prozedur brauche.

                  1. Hallo Verzweifelnder,

                    Shared Webspace

                    Du hast einen Shared Webspace, auf den https://example.org zeigt?

                    Was ist mit den Alternativ-Namen? Die musst Du ja auch gekauft und für Dich registriert haben, sonst kannst Du keinen Einfluss auf sie nehmen. Wohin zeigen die? Auf den gleichen Shared Webspace?

                    In dem Fall musst Du ja eigentlich gar nichts tun - die Anwender können alle URLs gleichwertig nutzen. Du müsstest nur im HTML eine kanonische URL festlegen - soweit ich weiß - damit die Suchmaschinen das nicht als SEO-Spam klassifizieren. Aber da habe ich nur ein Viertelwissen - für Halbwissen reicht's nicht.

                    Wenn https://my-example.com/foo/bar/baz.html und https://example.org/foo/bar/baz.html beide an der gleiche Stelle landen, du aber Zugriffe auf my-example.org immer nach https://example.org/ leiten willst, solltest Du im Hauptverzeichnis des Shared Servers einen <if RewriteCond für den Hostname-Header erzeugen:

                    <If "%{HTTP_HOST} != 'my-example.org'">
                       RedirectMatch 301 ".*" "https://example.org"
                    </If>
                    

                    Zumindest MEINE ich, dass das so geht. Der RedirectMatch deswegen, weil der einfache Redirect ein Präfix angibt und alles, was dahinter steht, an die Umleitungs-URL angehängt wird.

                    Wenn http://my-example.org auf einem eigenen Shared Server landet, musst Du diese Anweisung in der .htaccess von my-example.org unterbringen. Auf den if kannst Du dann verzichten. Aber Du solltest in dem Fall eher überlegen, diesen Shared Server loszuwerden, das ist nämlich zu teuer, und das Problem vom Hoster auf DNS Ebene lösen lassen (d.h. beide URLs auf den gleichen Server zeigen zu lassen).

                    Rolf

                    --
                    sumpsi - posui - obstruxi
                  2. Moin,

                    Durch Zufall bin ich jetzt draufgekommen, dass es sich da um etwas handelt, was in die Serverkonfiguration kommt. Und ich habe natürlich als Durchschnitts-User einen ganz normalen Shared Webspace und KEINEN angemieteten Server.

                    Redirect und RedirectMatch dürfen auch in einer .htaccess verwendet werden. Das ist aber auch nicht vom Zufall abhängig, sondern steht in der Dokumentation beschrieben.

                    Habe mich jetzt also seit gestern 3 Stunden völlig umsonst damit beschäftigt und mich gefragt, wieso ich damit nur Fehlermeldungen bekomme.

                    Was hast du genau versucht und wie lauteten die Fehlermeldungen?

                    Es bleibt dabei, dass ich Hilfe für die Med Rewrite Prozedur brauche.

                    Warum auch immer du dich gegen Redirect sperrst, wirst wohl nur du wissen.

                    Viele Grüße
                    Robert

                    1. Redirect und RedirectMatch dürfen auch in einer .htaccess verwendet werden. Das ist aber auch nicht vom Zufall abhängig, sondern steht in der Dokumentation beschrieben.

                      https://httpd.apache.org/docs/2.4/en/mod/core.html#allowoverride

                      Naja. Wenn man die möglichen Einstellungen eines möglichen Hosters als „Zufall“ betrachten will (was hier Einige tun), dann, äh, … doch.

                      Grüße aus Ganzgenauheim.

              2. Hi,

                Nein, das möchte ich alles nicht. Ich möchte, wie geschrieben, dass JEDE Anfrage an eine der 3 zusätzlichen Domains auf https://projekt.com umgeleitet wird.

                Ein Besucher auf den 3 "falschen" Seiten kann nicht glauben, "am Ziel zu sein", weil es keine dieser 3 Domains je gegeben hat. Es geht primär darum, dass sich die Domains sehr ähnlich sind und ich nicht möchte, dass die sich ein anderer nimmt.

                mal angenommen, eine der anderen Domains wäre project.com.

                Und irgendwo findet sich eine abgedruckte URL a la projekt.com/aktion.

                Und der (potentielle) Kunde tippt project.com/aktion ein, landet dann bei projekt.com statt bei projekt.com/aktion - sieht also nix von der angekündigten Aktion. Und ist wieder weg.

                M.E. sollte also nicht auf die Anfangsseite umgeleitet werden, falls die unter der anderen Domain angeforderte Seite existiert.

                cu,
                Andreas a/k/a MudGuard

                1. Hallo,

                  gutes Beispiel, nachvollziehbar beschrieben.

                  M.E. sollte also nicht auf die Anfangsseite umgeleitet werden, falls die unter der anderen Domain angeforderte Seite existiert.

                  Ja. Und wenn die unter der anderen Domain angeforderte Seite nicht existiert, möchte ich auch nicht kommentarlos auf die Startseite verfrachtet werden. Dann bin ich nämlich irritiert und wundere mich: "Was habe ich jetzt falsch gemacht?"
                  Stattdessen sollte der Server in diesem Fall eine Fehlerseite senden, die eindeutig sagt, dass die gesuchte Ressource nicht existiert. Gern auch mit einem Link zur Startseite - aber auf jeden Fall mit einem Status 404, damit's beispielsweise auch ein Bot kapiert.

                  Einen schönen Tag noch
                   Martin

                  --
                  Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.
                  1. Hallo Der,

                    ich verstehe den OT so, dass er verhindern will, dass ähnlich klingende Domains gegrabbt werden (z.B. http://anazon.de → http://amazon.de → https://amazon.de). Microsoft hat das mit mikrosoft.de nicht gemacht und prompt ist dort jemand anderes.

                    Bekannte von mir hatten mal brettspiele-online.info - das wurde freigegeben und SCHWUPS hat dort ein Grabber die rote Lampe ins Browserfenster gestellt. Mittlerweile ist die Domain wieder frei.

                    Beworben (oder publiziert) soll wohl nur projekt.com werden und DORT sollen auch keine Redirects gemacht werden.

                    Rolf

                    --
                    sumpsi - posui - obstruxi
                    1. Hallo,

                      ich verstehe den OT so, dass er verhindern will, dass ähnlich klingende Domains gegrabbt werden (z.B. http://anazon.de → http://amazon.de → https://amazon.de).

                      das mag schon sein - es ändert aber nichts an dem potentiellen Ärgernis, das MudGuard so schön anschaulich beschrieben hat. Auch wenn ich mich beim Eingeben der URL vertippe, möchte ich nicht einfach auf der Startseite der richtigen Domain landen, sondern auf der Seite, die meinem URL-Ziel mit der falschen Domain am ehesten entspricht. Sonst nervt das einfach. Dann ist gar keine Weiterleitung immer noch besser als eine irgendwo in die Wallachei.

                      Microsoft hat das mit mikrosoft.de nicht gemacht und prompt ist dort jemand anderes.

                      Wenn größere Unternehmen eine Domain für ihren Webauftritt registrieren, wird meistens die Marketing-Abteilung beauftragt, eine Liste mit dazu passenden möglichen Tippfehler-Domains zu erstellen. Die werden dann prophylaktisch alle mit registriert (kost' ja fast nix).
                      Vor ein paar Jahren hat mir mal jemand erzählt, dass der Daimler-Konzern über 50 solche Tippfehler-Domains registriert habe.

                      Bekannte von mir hatten mal brettspiele-online.info - das wurde freigegeben und SCHWUPS hat dort ein Grabber die rote Lampe ins Browserfenster gestellt. Mittlerweile ist die Domain wieder frei.

                      Dann war sie für andere wohl nicht interessant genug.

                      Beworben (oder publiziert) soll wohl nur projekt.com werden und DORT sollen auch keine Redirects gemacht werden.

                      Schon klar. Es ist trotzdem unfair gegenüber den Tippfehler-Besuchern, sie einfach an der Haustür abzusetzen, obwohl sie schon die richtige Etage, sogar die richtige Zimmernummer wussten - nur halt im falschen Gebäude.

                      Einen schönen Tag noch
                       Martin

                      --
                      Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.
  2. Lieber Verzweifelnder,

    für mich als Seitenbesucher wäre es ein Ärgernis, wenn ich example.com/pfad/seite.html aufrufte, und dann durch Deine Umleitung zu example.org ohne den dazugehörigen Pfad gebracht würde. Wenn Du mich umleiten willst, erwarte ich von Dir, dass ich zu example.org/pfad/seite.html gelange.

    Was kümmert es mich als Besucher, welche Domain ich nun wirklich habe? Genau: nada. Wenn Du meinst mich vor den Kopf stoßen zu müssen, dann wirst Du mich als Besucher ziemlich schnell verlieren. Ist das Deine Absicht?

    Liebe Grüße

    Felix Riesterer

    1. Hallo,

      Hast du schon seine Antwort auf ähnliche Bedenken gelesen?

      Gruß
      Kalk

      1. Hast du schon seine Antwort auf ähnliche Bedenken gelesen?

        Man sollte auch daran denken, dass der TO sich selbst mal bei einem Link verschreibt → Also gleich „richtig“ machen.

      2. Lieber Tabellenkalk,

        Hast du schon seine Antwort auf ähnliche Bedenken gelesen?

        ja. Leider ist dort die Quinzessenz:

        Und ich will schlicht und einfach, dass WENN wer mal auf die Idee kommen sollte, die URLs aufzurufen, dass der dann auf der"richtigen" Seite landet.

        Leider scheint er den Unterschied zwischen „Seite“ (im Sinne von Unterseite) und Website nicht zu verstehen oder wenigstens berücksichtigen zu wollen. Auch ist ihm nicht bekannt, dass Suchmaschinen die anderen Domains ebenfalls finden werden, da sie im DNS registriert sein werden.

        Liebe Grüße

        Felix Riesterer

        1. Auch ist ihm nicht bekannt, dass Suchmaschinen die anderen Domains ebenfalls finden werden, da sie im DNS registriert sein werden.

          Du meinst also Google (oder eine andere Suma) untersucht „www.example.com“ schon dann, wenn jemand erfolgreich versucht, den Hostname via deren DNS (nicht nur auf 8.8.8.8) aufzulösen?

          Aber Du hast so oder so Recht: Das kann sein. Irgendjemand kann ja zudem auch (irrtümlich) einen Link setzen - oder in grauen Vorzeiten mal gesetzt haben.

  3. Dein Ansinnen ist simpel zu erreichen:

    Du lässt ALLE Domains auf EIN Verzeichnis („DOCUMENT_ROOT“) und legst dort eine Datei .htaccess an:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.example.com$ [OR]
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]
    

    Erläuterung:

    Wenn

    • der Host in der Anfrage nicht „www.example.com“ ist

    oder

    • die Verbindung nicht verschlüsselt ist

    wird der Browser zu „https://www.example.com“ mit dem Rest der URI geschickt.

    • Statuscode ist 301 („verzogen“).
    • Das Bearbeiten der Regeln wird abgebrochen.

    Hints:

    • Du kannst danach weitere Regeln für Deine Domain setzen.
    • Du kannst GENAU das auch für jede Domain einzeln machen. Es muss Dir nur erlaubt sein.

    (Womöglich: bessere) Alternative:

    • Manche/Viele Hoster erlauben Einrichtung solcher Weiterleitungen auch direkt dort, wo man als deren Kunde seine Domains einrichtet. Dann wird das nicht in einer htaccess hinterlegt sondern in der Konfiguration für den virtuellen Host. Das wäre performanter, weil bei einem Zugriff nicht erst die .htaccess gesucht und gelesen werden muss.
    1. Hallo Raketenwilli!

      Du lässt ALLE Domains auf EIN Verzeichnis („DOCUMENT_ROOT“) und legst dort eine Datei .htaccess an:

      Das ist eine gute Idee, auf die ich so schnell gar nicht gekommen wäre. Sehr gut, dann spare ich mir nämlich, mehrere .htaccess Dateien anlegen zu müssen.

      RewriteEngine On
      RewriteCond %{HTTP_HOST} !^www.example.com$ [OR]
      RewriteCond %{HTTPS} off
      RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]
      

      Kannst Du mir bitte noch erklären, wofür genau das (.*) bei der RewriteRule steht? Was bewirkt das bzw. was wäre, wenn dort nur RewriteRule https://www.example.com%{REQUEST_URI} [R=301,L] stünde?

      (Womöglich: bessere) Alternative:

      • Manche/Viele Hoster erlauben Einrichtung solcher Weiterleitungen auch direkt dort, wo man als deren Kunde seine Domains einrichtet. Dann wird das nicht in einer htaccess hinterlegt sondern in der Konfiguration für den virtuellen Host. Das wäre performanter, weil bei einem Zugriff nicht erst die .htaccess gesucht und gelesen werden muss.

      Ja, ich weiß. Das habe ich mir schon angesehen. Allerdings funktioniert das nur, wenn die reine Domain eingegeben wird, also bei meinem Beispiel etwa mein-projekt.com. Sobald da was dranhängt (zB. mein-projekt.com/foo.html), funktioniert das nicht mehr. Und ich will ja die Umleitung für jede Anfrage. Und ich könnte auch keine .htaccess anlegen dann. Also lasse ich das gleich.

      Danke für die verständliche Antwort!

      LG

      Der Verzweifelnde

      1. Hallo Verzweifelnder,

        Kannst Du mir bitte noch erklären, wofür genau das (.*) bei der RewriteRule steht?

        Eine RewriteRule übersetzt VON etwas IN etwas anderes. Das VON ist ein Suchmuster und stellt eine so genannte Regular Expression (Regex) dar. Das IN ist ein Ersetzungsmuster und kann Teile, die das Suchmuster gefunden hat, wiederverwenden.

        Im konkreten Fall wird nichts wiederverwendet, und das Suchmuster ist eins, dass auf jede Zeichenkette passt. Die Klammern dienen zum Gruppieren von Suchtreffern und sind - meine ich - hier optional, der Punkt ist das Regex-Symbol für "passe auf jedes Zeichen" und der Stern ist ein Multiplikator, der besagt: Das, was links von Dir steht (also der Punkt), darf null bis beliebig oft vorkommen. Regexe sind eine komplexe Angelegenheit, wenn Du davon mehr verstehen willst, hast Du eine steile Lernkurve vor Dir…

        Das Suchmuster ist ein Pflichtparameter, darum muss das da stehen.

        Das Ersetzungsmuster könnte sich mittels $1 auf den Text beziehen, der vom Suchmuster gefunden wurde - das wird hier aber anders gemacht. Raketenwilli verwendet %{REQUEST_URI}, was eine Servervariable ist. In der steht der Pfad und der Name der abgerufenen Ressource. Ob das für Dich passt, musst Du selbst entscheiden, denn REQUEST_URI enthält die Query-Parameter (den Teil ab dem ?) nicht - die findet man in %{QUERY_STRING}.

        Rolf

        --
        sumpsi - posui - obstruxi
        1. Raketenwilli verwendet %{REQUEST_URI}, was eine Servervariable ist. … REQUEST_URI enthält die Query-Parameter (den Teil ab dem ?) nicht

          Nana. Das ist eine „sportliche Behauptung“.

          Praxis:

          .htaccces auf fastix.de:

          RewriteEngine On
          RewriteRule (.*) https://www.fastix.org%{REQUEST_URI}
          

          versuche mal http://fastix.de/?foo=bar und schaue wo die „Reise“ hin geht…

          Theorie:

          In einer URI ist die query per definitionem enthalten und in einer URL nach Lesart vieler nicht. Das Ding heißt also richtig

          %{REQUEST_URI}.

          Man kann freilich - ebensogut - auch „$1“ notieren um den ersten geklammerten Ausduck zu adressieren, der vorliegend aber „zufällig“ mit %{REQUEST_URI} übereinstimmt.

          1. Hallo Raketenwilli,

            Das ist eine „sportliche Behauptung“.

            Das war eine - möglicherweise sportliche - Abschrift von

            https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

            REQUEST_URI
            The path component of the requested URI, such as "/index.html". This notably excludes the query string which is available as its own variable named QUERY_STRING.

            Keine Ahnung, ob der Medizinmann da über seinen Häuptling Lügen erzählt. Wenn's bei Dir funktioniert (deine .htaccess dazu sieht man ja nicht 😉), dann hat wohl der Häuptling Dinge getan, die er nicht sollte.

            Rolf

            --
            sumpsi - posui - obstruxi
            1. Hallo Raketenwilli,

              Das ist eine „sportliche Behauptung“.

              Das war eine - möglicherweise sportliche - Abschrift von

              https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

              REQUEST_URI
              The path component of the requested URI, such as "/index.html". This notably excludes the query string which is available as its own variable named QUERY_STRING.

              Keine Ahnung, ob der Medizinmann da über seinen Häuptling Lügen erzählt. Wenn's bei Dir funktioniert (deine .htaccess dazu sieht man ja nicht 😉), dann hat wohl der Häuptling Dinge getan, die er nicht sollte.

              Naja. Der Redakteur des Beipackzettels (der Doc) hat da wohl Mist gebaut. Die gezeigte .htaccess stimmt und (ist explizit beim Aufruf von http://fastix.de/?foo=bar) auch wirksam. Ich habe das gerade noch einmal sehr genau überprüft.

              Notiz:

              Auch meine eigene phpinfo zeigt an, dass in $_SERVER['REQUEST_URI'] die Query enthalten ist:

              Hoster:

              • https://www.fastix.org/phpinfo.php?foo=bar#_SERVER

              Zu Hause:

              • https://code.fastix.org/phpinfo.php?foo=bar#_SERVER

              Und den Wert für den Key 'REQUEST_URI' dieser Variable setzt der Apache, PHP schreibt den dann nur in den eigenen Kontext. Das gilt auch für andere Key:Value-Paare in $_SERVER, soweit noch vorhanden auch im alten $_ENV.

              Nachtrag:

              1. Das Handbuch ist an der Stelle „missverstehbar“.

                RewriteEngine On
                RewriteRule (.*) https://www.example.org%{REQUEST_URI}
                

                In den Falle, dass die Zieladresse eine vollständige und absolute URI ist (erkennbar daran, dass diese mit dem Protokoll beginnt) wird die Query nachträglich bei der Umleitung angehangen.

                Mit

                LogLevel debug rewrite:trace8
                

                in der Config des Servers kann man das im Error-Log nachlesen:

                … applying pattern '(.*)' to uri '/'
                … rewrite '/' -> 'https://example.org/'
                … explicitly forcing redirect with https://www.example.org/
                … escaping https://www.example.org/ for redirect
                … copying foo=bar to query string for redirect 
                … redirect to https://www.example.org/?foo=bar [REDIRECT/301]
                

                Gegenbeispiel mit relativer URL:

                RewriteEngine On
                RewriteRule .* /router.php%{REQUEST_URI}
                

                In diesem Fall wird die query (angeblich: ich habe das nicht selbst getestet) nicht hinzugefügt. Ebenso nicht, wenn man dieses Verhalten mit dem Parameter QSD explizit abschaltet:

                RewriteRule (.*) https://example.org%{REQUEST_URI} [QSD]
                

                Mit dem Parameter QSA kann man es aber ebenso auch dann erzwingen, wenn das Ziel der Umleitung eine relative URL ist.

                Merkregel: „Q“ wie query, „s“ wie shold, „D“ wie delete, „A“ wie append.

                Es gibt auf meinen Bugreport hin einen Revisionseintrag zum Handbuch, wahrscheinlich wird die von Rolf genannte Stelle geändert.

                Ich würde jetzt dazu neigen, das Verhalten nicht dem „Zufall“ zu überlassen, sondern auch zum Zweck der „Selbstdokumentation“ diese Parameter (QSD oder QSA) stets angeben - statt mich auf irgendwelche Defaults zu verlassen.

                Jedenfalls in künftigen Projekten.

                Vollständig sieht die Rewrite-Role dann so aus:

                RewriteRule (.*) https://www.example.org%{REQUEST_URI} [END,QSA,R=permanent]
                
                • END - Bearbeiten der Regeln abbrechen
                • QSA - Query anhängen
                • R=permanent - Mit HTTP-Statuscode 301 „Moved Permanently“
                1. Hallo,

                  [...] wird die Query nachträglich bei der Umleitung angehangen.

                  nein, angehängt. Das Partizip gehangen gibt's nur bei intransitiver Verwendung.

                  Merkregel: „Q“ wie query, „s“ wie shold, „D“ wie delete, „A“ wie append.

                  Hä? Query String Append bzw. Query String Delete.
                  Braucht man da eine Merkregel?

                  • END - Bearbeiten der Regeln abbrechen

                  Das ist dann vermutlich ein Synonym zu L (für Last).

                  Einen schönen Tag noch
                   Martin

                  --
                  Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.
                  1. [mod_speling]

                    Also. Ich habe in der 7. Klasse meiner Frau Mutter (Lehrerin…) eine Mathe-Arbeit mit 36 von 32 Punkten (also 32 +4 Zusatzpunkte) vorgelegt. Statt des erwartbaren Lobes hat diese einen Rechtschreibfehler angemeckert.

                    Die Konsequenzen waren folgende:

                    1. Ich hab meinen Altvorderen keine Klassenarbeiten mehr zu Unterschrift vorgelegt.
                    2. Ich wurde dann auch ganz schnell nicht mehr nach den Unterschriften derselben gefragt.
                    3. Die Meinung meiner Altvorderen zu meinen Lernergebnissen war mir ab sofort völlig egal. Ich konnte selbst eine dazu haben und sah auch keinen Grund, diese auch nur über etwas zu informieren. Die halbjährlichen Zeugnisse mussten reichen.

                    Hä? Query String Append bzw. Query String Delete. Braucht man da eine Merkregel?

                    • Es ist geradezu notwendig, dass Merkregeln einfach sind.
                    • Das gilt auch bei Akronymen.

                    Das ist dann vermutlich ein Synonym zu L (für Last).

                    Ja. Aber ich empfinde „END“ als „sprechender“.

                    1. Hallo Raketenwilli,

                      Statt des erwartbaren Lobes hat diese einen Rechtschreibfehler angemeckert.

                      War sie Deutschlehrerin und hat auf das geschaut, was sie verstanden hat? Erinnert mich an meine Schwägerin, die brächte das auch fertig.

                      Es ist geradezu notwendig, dass Merkregeln einfach sind.

                      Ja. Aber warum S wie shold? Ist das ein Wort? Ein weiteres Akronym? Oder ein speling eror? Mörderische Autokorrektur? S wie "String" klingt plausibler.

                      Und eine Merkregel ist das alles nicht, sondern nur eine Auflistung der abgekürzten Begriffe. Eine Merkregel wäre "wer nämlich mit h schreibt ist dämlich" (was aber Unsinn ist, das sähe nämlic komisch aus) oder "Q S A - Query String ist da" / "Q S D - Die Query ich nicht seh".

                      Mal so aus der hohlen Birne in die Hüfte geschossen…

                      Rolf

                      --
                      sumpsi - posui - obstruxi
                    2. Hallo,

                      [mod_speling]

                      Also. Ich habe in der 7. Klasse meiner Frau Mutter (Lehrerin…) eine Mathe-Arbeit mit 36 von 32 Punkten (also 32 +4 Zusatzpunkte) vorgelegt. Statt des erwartbaren Lobes hat diese einen Rechtschreibfehler angemeckert.

                      hätte mir damals genauso passieren können.
                      Und meine Eltern sind bzw. waren keine Lehrer.

                      Ergänzung: Mein Vater erzählte mal von seinem Lateinlehrer, einem in Deutschland lebenden Russen mit herausragenden Deutschkenntnissen. Der habe in Klausuren grundsätzlich Fehler im deutschen Text (Rechtschreibung, Grammatik, Zeichensetzung) doppelt gewichtet. "Das ist Ihre Muttersprache, die müssen Sie beherrschen."
                      Wenn heute ein Lehrer mit solchen Ansprüchen käme ... oh je, der Notendurchschnitt läge bei 4 oder noch deutlich schlechter.

                      Die Konsequenzen waren folgende:

                      1. Ich hab meinen Altvorderen keine Klassenarbeiten mehr zu Unterschrift vorgelegt.
                      2. Ich wurde dann auch ganz schnell nicht mehr nach den Unterschriften derselben gefragt.
                      3. Die Meinung meiner Altvorderen zu meinen Lernergebnissen war mir ab sofort völlig egal. Ich konnte selbst eine dazu haben und sah auch keinen Grund, diese auch nur über etwas zu informieren. Die halbjährlichen Zeugnisse mussten reichen.

                      Okay. Und?

                      Einen schönen Tag noch
                       Martin

                      --
                      Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.
                        1. Die Meinung meiner Altvorderen zu meinen Lernergebnissen war mir ab sofort völlig egal. …

                        Okay. Und?

                        Ich notiere: Zu viele Blumen.

                        1. Hallo,

                          1. Die Meinung meiner Altvorderen zu meinen Lernergebnissen war mir ab sofort völlig egal. …

                          Okay. Und?

                          Ich notiere: Zu viele Blumen.

                          von wem? Für wen? Aus welchem Anlass?
                          Sorry, ich kann dir da nicht folgen.

                          Meine Eltern hatten damals auch ein großes Interesse daran, meine Klausuren oder auch meine Hausaufgaben zu sehen. Ich fand diesen Kontrollzwang extrem lästig und habe daher auch angefangen, ihnen so manches zu verschweigen. Einfach um meines Friedens willen.

                          Ich mochte diesen Kontrollzwang noch nie, erst recht nicht, wenn ich das Opfer bin. Also habe ich versucht, mich zu verteidigen - sprich: Vieles lieber für mich behalten.

                          Dass die Eltern Klausuren abzeichnen (im Sinne von "Gesehen"), hat es bei mir in der Schule nicht gegeben.

                          Einen schönen Tag noch
                           Martin

                          --
                          Ich fürchte, ich brauche ein neues Portemonnaie. Das alte ist leer.
      2. Kannst Du mir bitte noch erklären, wofür genau das (.*) bei der RewriteRule steht?

        Das steht für „egal was einschließlich gar nichts“.

        Bei einer URI wie „https://www.example.com/foo/bar?baz=tok“ eben für „/foo/bar?baz=tok“ mithin für den optionalen Pfad zur Ressource auf dem Server und die ebenfalls optionalen Value/Wert-Paare (Query).