Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

htaccess redirect upper- to lowercase-URL´s

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
euroexchange.de
PostRank 6
PostRank 6
Beiträge: 471
Registriert: 02.06.2007, 13:49

Beitrag von euroexchange.de » 10.09.2009, 13:49

Hallo.

Laut Webmastertools habe ich doppelten Content durch unterschiedliche URL´s, bedingt durch einmal Klein- und einmal Großschreibung innerhalb der URL´s.

Beispiel:
Im schlimmsten Fall auch noch:
Das leichteste wäre natürlich ein Eintrag in "httpd.conf" mit:
RewriteMap lowercase int:tolower
RewriteCond $1 [A-Z]
RewriteRule ^/(.*)$ https://www.example.de/${lowercase:$1} [R=301,L]
Da ich bei meinem Server aber darauf keinen Zugriff habe muß ich mit einem Workaround arbeiten. Dieser sieht wie folgt aus:
# Skip this entire section if no uppercase letters in requested URL
RewriteRule ![A-Z] - [S=28]
# Else rewrite one of each uppercase letter to lowercase
RewriteRule (*[A]*)A(.*)$ /$1a$2
RewriteRule ^([^B]*)B(.*)$ /$1b$2
RewriteRule ^([^C]*)C(.*)$ /$1c$2
RewriteRule ^([^D]*)D(.*)$ /$1d$2
RewriteRule ^([^E]*)E(.*)$ /$1e$2
RewriteRule ^([^F]*)F(.*)$ /$1f$2
RewriteRule ^([^G]*)G(.*)$ /$1g$2
RewriteRule ^([^H]*)H(.*)$ /$1h$2
RewriteRule ^([^I]*)I(.*)$ /$1i$2
RewriteRule ^([^J]*)J(.*)$ /$1j$2
RewriteRule ^([^K]*)K(.*)$ /$1k$2
RewriteRule ^([^L]*)L(.*)$ /$1l$2
RewriteRule ^([^M]*)M(.*)$ /$1m$2
RewriteRule ^([^N]*)N(.*)$ /$1n$2
RewriteRule ^([^O]*)O(.*)$ /$1o$2
RewriteRule ^([^P]*)P(.*)$ /$1p$2
RewriteRule ^([^Q]*)Q(.*)$ /$1q$2
RewriteRule ^([^R]*)R(.*)$ /$1r$2
RewriteRule ^([^S]*)S(.*)$ /$1s$2
RewriteRule ^([^T]*)T(.*)$ /$1t$2
RewriteRule ^([^U]*)U(.*)$ /$1u$2
RewriteRule ^([^V]*)V(.*)$ /$1v$2
RewriteRule ^([^W]*)W(.*)$ /$1w$2
RewriteRule ^([^X]*)X(.*)$ /$1x$2
RewriteRule ^([^Y]*)Y(.*)$ /$1y$2
RewriteRule ^([^Z]*)Z(.*)$ /$1z$2

# If more uppercase letters remain, re-invoke .htaccess and start over
RewriteRule [A-Z] - [N]
# Else do a 301 redirect to the all-lowercase URL
RewriteRule (.*) $1 [R=301,L]
Zur Problembeschreibung.
Mit dem obigen Code wird aus z.B.:
Man beachte das "Search.php". Der Code verändert also nur die Großschreibung vor dem "?" in Kleinschreibung.

Hat jemand von Euch eine Idee wie ich die RewriteRules auf die gesamte URL anwende? Danke!