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

Andreas Burg typo3 at andreasburg.de
Mon Jun 16 12:07:44 CEST 2008


Justin Heindorf schrieb:
> 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

Hallo Justin,

ich würde dir vorschlagen, dass du dich von deiner Idee löst. Ich weiß, das ist nicht immer gerne 
gehört, aber eine .com repräsentiert eine kommerzielle Seite und und eine .de eine deutsche Seite. 
Wenn es ein kommerzielles Projekt ist, dann solltest du auch die ganze Seite auf die .com leiten. 
Mit der EXT sr_language_detect kannst du es dann so einrichten, dass die User aus den 
unterschiedlichen Ländern auf die entsprechende Sprache gelenkt werden.

Das du die Domäne .de besitzt macht natürlich dennoch Sinn, auch wenn sie nie angezeigt wird, denn 
es gibt ja User, die versuchen es erstmal über .de, wenn sie wissen, dass es ein deutsches Projekt ist.

Mit folgendem Code kannst du erreichen, dass immer die .com angezeigt wird.

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^127.0.0.1
RewriteCond %{HTTP_HOST}  !^localhost [NC]
RewriteCond %{HTTP_HOST}  !^meineseite\.com [NC]
RewriteCond %{HTTP_HOST}  !^$
RewriteRule ^(.*)         http://meineseite.com/$1 [L]

Andreas Burg


More information about the TYPO3-german mailing list