.htaccess Leerzeichen maskieren

Apache Webserver

.htaccess Leerzeichen maskieren

.htaccess Leerzeichen maskieren

Weil ich gerade vor der Frage stand was zu tun ist, wenn ein fehlerhafter Link aus einer fremden Quelle, der weitergeleitet werden soll, Leerzeichen enthält poste ich hier die Lösung. Nehmen wir an die Google Webmaster Tools zeigen uns, dass irgendeine Seite auf uns mit dem falschen Link:

www.musterseite.de/testseite.html%20target=

verweist. Klickt der User auf einen solchen kaputten Link bekommt er natürlich eine Fehlermeldung. Instinktiv würde ich davon ausgehen, dass der entsprechende Redirect Befehl so aussehen muss:

Redirect Permanent /testseite.html%20target= http://www.musterseite.de/testseite.html

Das ist falsch, denn der der Server bekommt eine ganz andere URL zu gesicht, nämlich:

/testseite.html target=

Aus diesem Grund greift das oben genannte Redirect nicht. Dieses Problem lässt sich ganz einfach beheben:

Redirect Permanent “/testseite.html  target=” http://www.musterseite.de/testseite.html

Der Fett markierte Teil stellt einen wichtigen Unterschied dar. Denn wir haben das Leerzeichen mittels der Anführungszeichen maskiert, womit der Redirect nun greift. Um die Problematik dahinter zu verstehen muss man folgendes wissen:

Jegliche Prozentschreibweise wie z.B. %20 ist nur eine Hilfsfunktion der Browser für eigentlich nicht unterstützte Zeichen. Das Betriebssystem kümmert sich aber nicht um solche Probleme. Daher schreiben wir in die .htaccess bereits die Übersetze Fassung, und sofern diese Leerzeichen oder andere Maskierte Zeichen enthält setze wir das ganze in Anfürhungszeichen.

Diskussion

7 Kommentare zu “.htaccess Leerzeichen maskieren”

  1. Hallo Jakob,

    danke für den super Post. Genau das habe ich benötigt. Hab schon ewig gesucht und es dann ausprobiert um eine veraltete Seite umzuleiten auf eine Neue.
    Der Trick mit den Anführungszeichen funktioniert auch bei der Ziel-URL, falls die neue Seite auch wieder Leerzeichen enthält.
    Besser für Suchmaschinen wäre jedoch die Nutzung von
    Redirect 301 statt Redirect Permament oder!?
    Viele Grüße Andreas

    Posted by Andreas | April 8, 2009, 13:35
  2. 301 ist der Statuscode für RedirectPermanent. Es ist also egal.

    Posted by Jakob Zogalla | April 8, 2009, 17:31
  3. [...] müssen diese maskiert werden. Über die Lösung dieses recht häufigen Problems habe ich aber an andere Stelle schon einmal geschrieben. Ähnliche Beiträge:SEO-Beiträge – ein paar kritische ReviewsSeo Sunday – Über das [...]

    Posted by SEO-Sunday – Tote Links wiederbeleben | Juli 26, 2010, 08:36
  4. Sehr gut, hat funktioniert. Einfach die alte URL wie beschrieben mit Anführungszeichen (“”) maskieren, alte URL einfach normal mit Leerzeichen schreiben und es funktioniert.

    1. Linie: Redirect permanent “alte URL mit Leerzeichen” Neue URL
    2. Linie: Redirect 301 “alte URL mit Leerzeichen” Neue URL

    Posted by Mobile-IT Strategie | Oktober 10, 2010, 16:23
  5. leider klappt das nicht mit deutschen umlauten .. oder ich stelle mich einfach zu ungeschickt an.

    Posted by stefan | Mai 2, 2011, 17:21
  6. Super, hat prima Funktioniert.

    Posted by Melanie | Dezember 30, 2011, 16:42
  7. DANKE!!!!!!!! Ich war schon soo verzweifelt und dann habe ich das hier gefunden!! JAAAA ;)

    Posted by Paul | August 26, 2012, 16:38

Post a comment