ChrisB: mod_rewrite klappt nicht

Beitrag lesen

Hi,

RewriteRule .+laus.*.de/12.34.56/login.php https://www.klaus-mustermann.de/12.34.56/login.php
...]

Zur Erklärung:
da der Nutzer auch einfach nur "klausmustermann.php/..." eingeben könnte,

Selbst wenn du hier offensichtlich .de statt .php stattdessen meinst, bringt das RewriteRule trotzdem immer noch nicht dazu, sich für den Hostnamen des Requests auch nur das geringste Bisschen zu interessieren – RewriteRule matcht ausschließlich die Path-Komponente des URL, sonst nichts.

Wenn du den Hostnamen auswerten willst, musst du das mit einer vorgeschalteten RewriteCond machen.

[…] Entsprechend sollte ich somit sämmtliche Eingaben wie
"http://k", "www.k", "k" abfangen - anschließend folgt "laus".
Da es nun die beiden Varianten "-mustermann.de" oder auch direkt "mustermann.de" gibt, habe ich die Regel ".*" verwendet, was beides abfangen sollte.

Das ist der nächste Fehler – du *willst* nicht „alles“ abfangen, was den Hostnamen angeht – sonst landest du nämlich in einer Endlos-Schleife von Umleitungen, wenn der Nutzer bereits den „richtigen“ Hostnamen in seiner Anfrage verwendet hat, und du trotzdem wieder einen Redirect dorthin ausgibst.

Und wenn er bereits diesen richtigen Hostnamen verwendet hat, aber die Anfrage per HTTP gestellt hat, dann willst du ihn trotzdem noch zur HTTPS-Variante umleiten – das ist also noch eine zusätzliche Bedingung, die du ebenfalls mit prüfen musst.

MfG ChrisB

--
Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/