[TYPO3-german] Problem mit RewriteRule -> deutsche/englische Seiteninhalte

Justin Heindorf justin at jhpc.de
Mon Jun 16 11:47:01 CEST 2008


Hallo Ihr versierten T3ler,

mein Latein ist am Ende - ich kann irgendwie noch blicken, woran es 
hakt, aber ich finde keine Lösung.

Hintergrund: ich habe eine Seite, die sowohl auf Deutsch als auch auf 
Englisch vorliegt. Dazu gibt es eine COM und eine DE Domain 
(meineseite.de & meineseite.com) Ich hätte es gerne, dass bei einem 
Aufruf der COM Domain die Seite auf Englisch, bei DE logischerweise auf 
Deutsch angezeigt wird.

T3 zeigt mir bei meineseite.de/de/... die deutsche Version,
bei meineseite.de/en/ die englische Version. Dieses Verhalten ist bei 
der COM-Domain natürlich identisch.

Ich habe das mit ModRewrite in der .htaccess so versucht, zu lösen:

--- [snip] ---
RewriteCond %{HTTP_HOST} ^.*\.meinedomain\.de$ [NC]
RewriteRule ^en/(.*) http://www.meinedomain.com/en/$1 [R=301,L]

RewriteRule ^de/(.*) http://www.meinedomain.de/$1 [R=301,L]
--- [snip] ---

Die Rule wird nur angewendet auf die .de - Domain
wenn die REQUEST_URI mit en/* anfängt, wird umgebaut auf 
www.meinedomain.com/en/*

Die zweite Rule habe ich gesetzt, weil T3 als Standardsprache Deutsch 
eingestellt hat, somit m.e. das "de/" überflüssig ist und wech kann.

Nun aber das eigentliche Problem:

Ich möchte Seiten aufrufen können, indem ich z.B. mit 
www.meinedomain.de/imprint das Impressum angezeigt bekomme. Wenn ich das 
bei der COM-Domain versuche:

www.meinedomain.com/imprint

zeigt T3 mir aber dennoch die Deutsche Version, weil ja die 
Standardsprache Deutsch ist (nehme ich an). Also muß ich dir REQUEST_URI 
so umbauen, dass da ein en/ vor steht:

www.meinedomain.com/en/imprint

Dazu habe ich mir folgendes ausgedacht:
--- [snip] ---
RewriteCond %{HTTP_HOST} ^.*\.meinedomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/en/.*$ [NC]
RewriteRule (.*) http://www.meinedomain.com/en/$1 [R=301,L]
--- [snip] ---

Die Rule soll nur greifen, wenn man in der COM-Domain ist und wenn die 
URI kein "en/" enthält. Dann soll sie das EN ergänzen.

Das führt aber zur Fehlermeldung (Firefox 2.0.0.14) "Umleitungsfehler - 
Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet 
werden kann."

Ich habe folgenden Workaround probiert:

--- [snip] ---
RewriteCond %{HTTP_HOST} ^.*\.meinedomain\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteRule (.*) http://www.meinedomain.com/en/ [R=301,L]
--- [snip] ---

Wenn die URI auf der COM-Domain nur ein / ist, dann soll ein en/ 
drangebaut werden - das klappt aber auch nicht. Dann kommt das Impressum 
trotzdem auf Deutsch...

Meine Vermutung: die erste Lösung behakt sich mit den originalen 
T3-ReWrite-Rules:

--- [snip] ---
# original TYPO3 related rules continued
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
--- [snip] ---

Aber wie? Und wie nicht? Wie gesagt, mein Latein ist am Ende. Hat jemand 
das gleiche Problem? Oder einen Lösungsansatz/vorschlag?

Vielen Dank für Eure Hilfe!
Justin


More information about the TYPO3-german mailing list