Typo3 mehrsprachig multidomain realurl
Ich hatte neulich ein riesiges Problem mit Typo3. Ich habe mehrere Domains auf einer OneTree Typo3 installation laufen mit mehreren Sprachen. Mein Problem war wie bekomme ich die verschiedenen Sprachen unter den verschiedenen Domains angezeigt und zugeordnet.
Schritt 1
Anpassung der localconf.php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
'_DEFAULT' => array (
'init' => array (
'enableCHashCache' => '1',
'appendMissingSlash' => 'ifNotFile',
'enableUrlDecodeCache' => '1',
'enableUrlEncodeCache' => '1',
),
'redirects' => array (
),
'preVars' => array (
'0' => array (
'GETvar' => 'no_cache',
'valueMap' => array (
'nc' => '1',
),
'noMatch' => 'bypass'
),
'1' => array (
'GETvar' => 'L',
'valueMap' => array (
'de' => '0',
'en' => '1',
'cz' => '2',
),
'valueDefault' => 'de',
//'noMatch' => 'bypass',
),
'2' => array (
'GETvar' => 'lang',
'valueMap' => array (
'de' => 'de',
'en' => 'en',
'cz' => 'cz',
),
'noMatch' => 'bypass',
),
),
'pagePath' => array (
'type' => 'user',
'userFunc' =>
'EXT:realurl/class.tx_realurl_advanced.php:
&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => '7',
'rootpage_id' => '1',
),
'fixedPostVars' => array (
),
),
);
Dieser Quelltext gehört in die localconf.php oder in eine andere Konfigurationsdatei fur RealUrl. Wichtig ist der grün markierte Teil weil dies ist die Sprachkürzelangabe auch für die Standartsprache.
Schritt 2
Anpassung Typoscript der setup Konfiguration im Template
## RealURL aktivieren
config.simulateStaticDocuments = 0
config.tx_realurl_enable = 1
config.prefixLocalAnchors = all
## Domain BaseUrl zuweisen
[globalString = ENV:HTTP_HOST=www.domain.cz]
page.config{
baseURL = http://www.domain.cz/
}
[globalString = ENV:HTTP_HOST=www.domain.de]
page.config{
baseURL = http://www.domain.de/
}
[globalString = ENV:HTTP_HOST=www.domain.eu]
page.config{
baseURL = http://www.domain.eu/
}
[globalString = ENV:HTTP_HOST=www.domain.net]
page.config{
baseURL = http://www.domain.net/
}
[globalString = ENV:HTTP_HOST=www.domain.org]
page.config{
baseURL = http://www.domain.org/
}
[global]
Hier wird die BaseUrl nochmals zugwiesen um vorzubeugen das Flash oder Sonstige Insert richtig dargestellt werden.
Schritt 3
Anpassung der .htaccess Datei im Rootverzeichnis der Domains oder der Typo3 Installation
RewriteEngine on
RewriteCond %{HTTP_HOST} domain.de$ [NC]
RewriteRule ^$ /index.php?id=1
RewriteCond %{HTTP_HOST} domain.eu$ [NC]
RewriteRule ^$ /index.php?id=1
RewriteCond %{HTTP_HOST} domain.net$ [NC]
RewriteRule ^$ /index.php?id=1&L=1
RewriteCond %{HTTP_HOST} domain.org$ [NC]
RewriteRule ^$ /index.php?id=1&L=1
RewriteCond %{HTTP_HOST} domain.cz$ [NC]
RewriteRule ^$ /index.php?id=1&L=2
RewriteRule ^[^/]*\.html$ index.php
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php
Hier werden die Umleitungen geschrieben um beim Aufruf bestimmter Domains direkt zur übersetzten Sprache zu gelangen.
Wenn also eine bestimmte Domain wie z.B. www.domain.de aufgerufen wird dann wird die Sprache deutsch angezeigt,
wird die Domain www.domain.cz aufgerufen so wird die Sprache Tschechisch angezeit.
Die Sprachumschaltung funktioniert in allen Sprachen und Domains tadellos.
Schritt 4
So nun zum letzten Punkt die Falggen zum umschalten der Sprachen. Da diese nicht die Domains unterscheiden hab ich einen kleinen Trick angewandt.
Den unten folgenden Quellcode auf seine Bedürfnisse anpassen und dann einfach in die localconf.php am Anfang einfügen.
Es ginge auch die index.php aber dann müsste man bei jedem update diesen Code wieder einfügen.
Fertig!
$eingabe = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$suche1 = eregi ('.de/en/', $eingabe);
$suche2 = eregi ('.de/cz/', $eingabe);
$suche3 = eregi ('.net/de/', $eingabe);
$suche4 = eregi ('.net/cz/', $eingabe);
$suche5 = eregi ('.cz/de/', $eingabe);
$suche6 = eregi ('.cz/en/', $eingabe);
if ($suche1 == true){
$eingabe=str_replace(".de",".net",$eingabe);
header('Location: '.$eingabe);
}
if ($suche2 == true){
$eingabe=str_replace(".de",".cz",$eingabe);
header('Location: '.$eingabe);
}
if ($suche3 == true){
$eingabe=str_replace(".net",".de",$eingabe);
header('Location: '.$eingabe);
}
if ($suche4 == true){
$eingabe=str_replace(".net",".cz",$eingabe);
header('Location: '.$eingabe);
}
if ($suche5 == true){
$eingabe=str_replace(".cz",".de",$eingabe);
header('Location: '.$eingabe);
}
if ($suche6 == true){
$eingabe=str_replace(".cz",".net",$eingabe);
header('Location: '.$eingabe);
}



Kommentare (2)
1
Proteus
schrieb am 28. April 2010 um 18:06 Uhr:
Das in Schritt 2 befindliche Script eignet sich auch für die Verwendung mit CoolURI. Bei meinem Versuch ein “Multidomainmenü” über Verweise in einem Sysfolder zu erstellen brachte das Script erst alles zum Laufen.
Danke!
2
Siegbert
schrieb am 11. Februar 2011 um 17:50 Uhr:
Sehr hilfreich ist auch folgendes: Ab RealURL Version 1.5 können Parameter wie z.B. der L-Parameter nicht nur in Teile des Pfades, sondern auch als Domainnamen abgebildet werden:
http://typo3-blog.net/tutorials/news/realurl-multilanguage-domain.html
Das vereinfacht die Konfiguration von Mehrsprachigkeit mit Multidomains sehr.
Schreiben Sie einen Kommentar zum Artikel