Seite 1 von 1

Redirect-Problem bei Leerzeichen in der URL

Verfasst: 10.03.2008, 11:19
von ulinho
Hi zusammen,
nach langwierigen Suchen bin ich dann doch nicht um einen neuen Thread herum gekommen.

Folgendes Problem:
In den Webmaster-Tools bekomme ich eine nicht gefundene Seite mit einem Leerzeichen (%20) in der URL zurück. Ein redirect permanent, mit den Leerzeichen durch %20 ersetzt, funktioniert nicht, genauso wenig natürlich der redirect mit einem Leerzeichen.

Gibt es einen Trick, um trotzdem eine permanente Weiterleitung zu setzen?

Danke,
ulinho

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 10.03.2008, 13:49
von chris21
Leerzeichen sind leider immer etwas knifflig.

Versuche mal, eine RewriteRule mit RewriteCond einzusetzen, und dabei an der Stelle des Leerzeichens ein "\ " zu verwenden, also ein Leerzeichen, bei dem durch den Backslash die Sonderzeichenbewertung aufgehoben wird. Dies funktioniert zumindest bei mir.

Beispiel:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} /ausdruck\ mit\ leerzeichen
RewriteRule (.*) http://www.example.com
Dann sollte ein Aufruf von www.example.com/ausdruck%20mit%20leerzeichen auf die Startseite umgelenkt werden.

Verfasst: 10.03.2008, 14:07
von ulinho
Hi chris21,
hab deinen Tipp schon aus diesem Thread in abgewandelter Form entnommen, hat aber leider auch bei mir nicht funktioniert. Ebenso die Version von oben.
Trotzdem Danke

Verfasst: 10.03.2008, 16:30
von chris21
Hhm, da müsste man mal schauen, warum das mod_rewrite-Modul auf Deinem Server/Webspace das anders handhabt als bei dem Server, wo ich es getestet habe. Vielleicht arbeitet z.B. das mod_rewrite Modul unter Apache 1.3xxx anders als unter Apache 2.0xx ? (Wobei allerdings die Seite aus dem von Dir verlinktem Thread auch auf einem Apache 2.054 liegt).

Ansonsten kannst Du auch versuchen, dass Leerzeichen über \x20 einzufangen, also

Code: Alles auswählen

RewriteCond %{REQUEST_URI} /ausdruck(\x20)mit(\x20)leerzeichen
RewriteRule (.*) http://www.example.com 
Funktioniert im Test auf einem Server bei all-inkl.com ebenso wie obiger Vorschlag.

Verfasst: 10.03.2008, 17:02
von ulinho
Dieses Leerzeichen macht mich noch kirre. Diese Version funzt auch nicht, Apache ist wie im Beispiel-Thread auch 2.054

Verfasst: 10.03.2008, 17:07
von chris21
Jo, mod_rewrite kann schon verrückt machen. Besonders eben Sonderzeichen in URLs.

Als Variante hätte ich noch \u0020 statt \x20 anzubieten. Leider weiß ich eben nicht, wie Dein Apache konfiguriert ist bzgl. Charsets u.ä.

Funktioniert mod_rewrite denn sonst?

Z.B.:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} /google
RewriteRule (.*) http://www.google.de
Wird da bei Aufruf von deinedomain.tld/google/ auf www.google.de umgeleitet?

Verfasst: 10.03.2008, 19:01
von ulinho
mod_rewrite funktioniert sonst wunderbar, damit gibt's soweit keine Probleme. Die Variante mit u0020 werde ich morgen testen und hier Rückmeldung geben.
Vielen Dank für die Hilfe soweit!

Verfasst: 11.03.2008, 08:55
von ulinho
Moin!
Hab jetzt alles durch, nichts funktioniert. Mit (\x20) und nur Backslash bekommt mein Browser ne 404 zurück, mit \u0020 einen Serverfehler.

Edit: Die Lösung des Problems ist eigentlich so simpel:
redirect permanent "/url mit leerzeichen" https://www.blubb.de/url-ohne-leerzeichen

Auf jeden Fall funzt es mit Leerzeichen, genauso mit Umlauten.

Verfasst: 11.03.2008, 13:50
von chris21
Hi,

schön, dass es funktioniert.

Das man einen Suchstring mit Anführungszeichen begrenzen kann, war mir neu (ohne die Anführungszeichen würde es ja zu einem Internal Server Error führen).

Das \u0020 führt bei mir übrigens auch zu einem Internal Server Error.

Kann es sein, dass Du auf einem Apache 1.3xx arbeitest und nicht auf einem 2.0xx ?

Anscheinend gibt es Unterschiede, ob Sonderzeichen für die interne Weiterverarbeitung escaped werden oder nicht.

Bei Umlauten habe ich z.B. gerade festgestellt, dass eine Regel wie

Code: Alles auswählen

RewriteCond %{REQUEST_URI} /sch(\ö)ner-leben.html
RewriteRule (.*) http://www.example.com [R=301]
bei Aufruf mit Firefox 2.0xx durchgeführt wird, bei Aufruf mit IE 7 aber nicht. :o

Das Gleiche gilt für schöner-leben.html oder sch(\xF6)ner-leben.html.

Sehr komisch.

Verfasst: 11.03.2008, 15:03
von ulinho
Apache/2.0.54 (Debian GNU/Linux)
Definitiv ne 2.0xx ;-)
Mich hat die ganze Geschichte auch ganz verrückt gemacht, aber die Weiterleitung mit der "Gänsefüßchen-Variante" funktioniert bei mir mit IE7 und FF 2.0.0.12.
Die Wege des Herrn sind unergründlich :D