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.
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
301 ist der Statuscode für RedirectPermanent. Es ist also egal.
[...] 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 [...]
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
leider klappt das nicht mit deutschen umlauten .. oder ich stelle mich einfach zu ungeschickt an.
Super, hat prima Funktioniert.
DANKE!!!!!!!! Ich war schon soo verzweifelt und dann habe ich das hier gefunden!! JAAAA