Alexander (HH): URL Weiterleitung mit Bedingung möglich?

Beitrag lesen

Moin Moin!

Du musst zwei Dinge entscheiden. Welche Art Umleitung möchtest Du haben.

Nein, eigentlich nicht. Für "häßliche URL weg, schicke URL her", gibt es nur einen Statuscode: 301 Moved Permanently. Damit wird jedem User-Agent, egal ob Browser oder Spider, signalisiert, er möge seine Bookmarks bzw. Datenbank auf die schicke URL ändern.

Und, wo möchtest Du es machen:

Nein, auch nicht. Es gibt eine saubere Lösung (mod_alias) und viel Gepfusche:

a) Auf dem Server beim Verarbeiten des Requests (bei Apache mod_rewrite, bei Win url rewrite),

mod_alias reicht für die Redirect-Direktive, die u.a. in jedem VHost-Kontext erlaubt ist. Die mod_rewrite-Bremse darf aus bleiben. Neuen VHost für unerwünschte(n) Namen anlegen, komplett leer lassen, Redirect-Direktive auf VHost mit gewünschtem Namen einrichten ("Redirect permanent / http://www.huebscher-name.tld/"), fertig. Das funktioniert für ALLE "häßlichen" URLs, ohne dass man sich mit regulären Ausdrücken und komplizierten Regeln herumschlagen muß.

b) in der Serverseitigen Scriptsprache, zum Bsp. php (header). Die Prüfung würde hier zum Beispiel über den Wert in $_SERVER["SERVER_NAME"] laufen.

Unnötig kompliziert. Der Riesenumweg über PHP muß nicht sein, siehe oben.

Nur, wenn mehrere Domains auf dem selben VHost laufen, z.B. bei schlecht konfiguriertem Shared Hosting, kann das eine Krücke sein. Das muß dann aber in ALLE PHP-Scripte rein, die Inhalte an den Browser liefern. Nicht vergessen: Anforderung war, die "böse" URL aus der Adresszeile herauszuhalten. Auch nicht-HTML-Resourcen müssen für diesen Murks über PHP ausgeliefert werden, was absolut sinnfrei serverseitig jede Menge Resourcen verbrennt.

c) beim User (javascript).

Funktioniert nicht. Javascript ist mittlerweile eine Pest, die oft genug abgeschaltet oder gesperrt wird. Außerdem ist das extrem unfreundlich gegenüber Suchmaschinen, die so weiter die "häßliche" URL auflisten, weil sie von der Weiterleitung auf die "hübsche" URL nichts mitbekommen.

Die Option, die <http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung@title=Weiterleitung beim User OHNE Javascript> zu implementieren, hast Du lustigerweise nicht einmal erwähnt.

Nicht, dass die wesentlich besser wäre, auch hier müssen wie bei der Javascript-"Lösung" alle ausgelieferten (X)HTML-Dokumente angefaßt werden.

Die Redirect-Direktive erschlägt das für ALLE Resourcen unter der "häßlichen" Domain mit einer einzigen Zeile in einer Konfigurationsdatei, und ohne dass der Webserver irgendwelche Interpreter oder externen Programme bemühen muß.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".