Seite 1 von 1

Nochmal redirect 301 bei mehrsprachiger Website

Verfasst: 05.06.2009, 09:10
von pbcp
Hallo, mein letzter Post blieb leider ergebnislos, deshlab hier noch einmal die ganz konkrete Frage.

Ich habe eine mehrsprachige Website. Jede Datei gibt es nur einmal, mit hilfe von PHP wird die jeweils passende Sprache angezeigt.

Also es gibt auf dem Server nur einmal die Datei:
www.domain.de/Kontakt/Kontakt.php
Diese kann aber in 4 Sprachen aufgerufen werden. Damit die Unterscheidung für den Besucher leichter ist, habe ich per ModRewrite die URLs so umgeschrieben, dass immer ein Sprachcode zu sehen ist.

RewriteRule ^ger/(.*)$ /$1?setlang=ger
RewriteRule ^en/(.*)$ /$1?setlang=en

Die Umschaltung der Sprache erfolgt jeweils über einen Link der zur Startseite führt

RewriteRule ^ger/index.php$ /index.php?setlang=ger
RewriteRule ^en/index.php$ /index.php?setlang=en

Soweit funktioniert auch alles wunderbar. Das problem ist, dass in den Suchmaschinen noch alte Links zu finden sind, die als URL statt

www.domain.de/ger/Kontakt/Kontakt.php so aussehen:
www.domain.de/Kontakt/Kontakt.php

Wie kann ich es nun schaffen, dass diese direkt über Suchmaschinen aufgerufenenn Links umgeschrieben werden?

Ich habe es z.B. so versucht:
RedirectMatch 301 ^/Kontakt/(.*)$ https://www.domain.de/ger/Kontakt/$1

Aber alle Lösungen die so aufgebaut sind, enden bisher in einer endlosen Schleife, so dass der Browser abbricht. Hier meine bisherige htaccess Datei:

Code: Alles auswählen

RewriteEngine On
Options +FollowSymLinks
RewriteBase /

RewriteRule ^ger/index.php$ /index.php?setlang=ger
RewriteRule ^en/index.php$ /index.php?setlang=en

RewriteRule ^ger/(.*)$ /$1?setlang=ger
RewriteRule ^en/(.*)$ /$1?setlang=en

ErrorDocument 404 http://www.domain.de/index.php
ErrorDocument 400 http://www.domain.de/index.php
ErrorDocument 401 http://www.domain.de/index.php
ErrorDocument 403 http://www.domain.de/index.php
ErrorDocument 500 http://www.domain.de/index.php

#Redirect old Google urls (div. Versuche, nicht hat bisher funktioniert)
#RewriteRule ^Kontakt/(.*)$ /ger/Kontakt/$1 [R=301,L]

RedirectMatch 301 ^/$ http://www.domain.de/ger/
RedirectMatch 301 ^/Kontakt/(.*)$ http://www.domain.de/ger/Kontakt/$1
Danke für eure Hilfe ...