Länderdomains umleiten über Typo3 Script?! wurde Beantwortet

Autor Nachricht
Verfasst am: 28.04.2008 [08:58]
MrLuke

[Themenersteller]
dabei seit: 18.12.2007
Beiträge: 27

Moin Moin..

Ich habe einen mehrsprachigen Typo3 Auftritt nach folgenden Muster aufgebaut.

Globales Verzeichnis (meinedomain.de)
-------------------------------------------------
>> Sprache DE (meinedomain.de/de/)
>>>> Unterseite DE 01
>>>> Unterseite DE 02

>> Sprache FR (meinedomain.de/fr/)
>>>> Unterseite FR 01
>>>> Unterseite FR 02

>> Sprache NL (meinedomain.de/nl/)
>>>> Unterseite NL 01
>>>> Unterseite NL 02


Nun möchte ich über die einzelnen Länderdomains auf meine Hauptdomain umleiten, wo auch das Typo3 System liegt. Die Länderdomains zeigen alle auf den Web-Root Pfad des Webspace.

Hier ein Versuch mit Rewrite Rules. Da momentan die Länderdomain nicht verwendet werden, habe ich zu Testzwecken Subdomain verwendet.

Php:Zeilennummerierung:  An / Aus

  1. RewriteRule ^fr\.meinedomain.de/(.*)   meinedomain.de/fr/ [L]
  2. RewriteRule ^nl\.meinedomain.de/(.*)   meinedomain.de/nl/ [L]
  3. RewriteRule ^de\.meinedomain.de/(.*)   meinedomain.de/de/ [L]


Das funktioniert leider nicht und es wird der folgende Fehler angezeigt:
Reason: Segment "luminotherapie" was not a keyword for a postVarSet as expected!


Wo liegt mein Fehler?! Evlt. kann man hier auch anders vorgehen (z.B. TypoScript?!), was ich mir natürlich gerne zu Herzen nehmeicon_smile.gif


Danke und Gruß,
Mr.Luke
Verfasst am: 28.04.2008 [22:17]
samefa

dabei seit: 30.04.2007
Beiträge: 28

Hallo MrLuke,

für mich klingt die Meldung nach einer RealURL-Fehlermeldung.
Benutzt Du die Extension RealURL?

Wenn ja, dann wird der Fehler voraussichtlich darin liegen, dass RealURL mit den Bezeichnungen "de", "nl" und "fr" im Moment nichts anfangen kann. Du mußt RealURL in der Webserver-Konfiguration (Apache: httpd.conf) oder z.B. über eine .htaccess-Datei entsprechend "briefen".

Schaue doch mal unter typo3.org/documentation/document-library/extension-manuals/realurl/1.3.1/view/1/5/#id3843758 nach. Dort gibt es eine gute Anleitung für die Konfiguration der RealURL-Extension für die Apache-Konfig (httpd.conf bzw. .htaccess).

Bzgl. Deiner unten stehenden Apache-Webserver-Konfiguration würde ich persönlich folgende Syntax vorziehen (als Beispiel für EINE Domain-Konfiguration, ist aber ungetestet):

RewriteCond %{HTTP_HOST} ^fr.meinedomain.de$ [NC]
RewriteRule ^/(.*?) http://www.meinedomain.de/fr/ [R=301]

Liebe Grüße

samefa
Verfasst am: 28.04.2008 [22:30]
MrLuke

[Themenersteller]
dabei seit: 18.12.2007
Beiträge: 27

Abend samefa!

Ich nutze RealURL und dies funktioniert eigentlich problemlos.

Meiner Meinung nach kann es nicht am RealURL liegen, da die Webseite unter der Hauptdomain im entsprechenden Unterordner der Sprache "meinedomain.de/fr/" fehlerfrei funktioniert.

Ich hatte eher gedacht, dass hier ein Umleitungsfehler in den RewriteRules existiert?!


Gruß,
Mr.Luke
Verfasst am: 28.04.2008 [22:33]
samefa

dabei seit: 30.04.2007
Beiträge: 28

Guten Abend MrLuke,

hast Du meine beschriebene Apache-Konfig ausprobiert, wenn Dein RealURL richtig konfiguriert ist?

Liebe Grüße

samefa
Verfasst am: 29.04.2008 [09:08]
MrLuke

[Themenersteller]
dabei seit: 18.12.2007
Beiträge: 27

Habe es teilweise gelöst! icon_lol.gificon_eek.gif

Ich habe die (Sub-) Domains in den "Domain Records" eingetragen und damit der Seite gesagt, dass über diesen Pfad auf den Seitenbau zugegriffen werden soll.

Jetzt habe ich nur noch ein eher kleines Problem: Es werden immernoch die ersten Unterordner ausgegeben.

Beispiel:
>> fr.meinedomain.de/fr/index.html
>> de.meinedomain.de/de/index.html
>> nl.meinedomain.de/nl/index.html

Dies ist wahrscheinlich eine realURL Einstellung bzw. TypoScript Konfiguration, welche ich aber nicht weiß?! icon_redface.gif
Also... eine Idee (außer PHP Outputbuffering), wie man dies umgehen kann?!

Gruß,
Mr.Luke

[Dieser Beitrag wurde 1 mal bearbeitet. Zuletzt am 29.04.2008 um 11:20]
Verfasst am: 29.04.2008 [14:44]
samefa

dabei seit: 30.04.2007
Beiträge: 28

Hallo MrLuke,

ich benutze bei mir den Parameter "L", um zwischen den verschiedenen Länder-Versionen hin und her zu switchen. Benutzt Du auch einen entsprechenden Parameter?

Überprüfe in der "localconf.php" bzw. "realurl_autoconf.php" (liegen im Verzeichnis /typo3conf/), ob Du den Parameter "L" entsprechend setzt. Ich selber habe dies in der "localconf.php" so eingestellt (muss vor "$TYPO3_CONF_VARS['EXT']['extConf']['realurl'] = ..." eingestellt werden).

Php:Zeilennummerierung:  An / Aus

  1. // Host abfragen und getVar setzen:
  2. switch(t3lib_div::getIndpEnv('HTTP_HOST')){
  3.    case 'fr.meinedomain.de';
  4.      $_GET['L'] = 0;
  5.      break;
  6.    case 'de.meinedomain.de';
  7.      $_GET['L'] = 1;
  8.      break;
  9.    case 'nl.meinedomain.de';
  10.      $_GET['L'] = 2;
  11.      break;
  12. }


Des Weiteren könntest Du überprüfen, ob Du in Deinem Basis-Template in etwa die folgenden Einstellungen hast.

Typoscript:Zeilennummerierung:  An / Aus

  1. ### Standard-Domain bzw. Länderauftritt "de"
  2. config.baseURL = http://de.meinedomain.de/
  3. config.prefixLocalAnchors = all
  4.  
  5. [globalVar = GP:L = 0]
  6. config.baseURL = http://fr.meinedomain.de/
  7. config.sys_language_uid = 0
  8. config.language = fr
  9. config.locale_all = fr_FR.utf8
  10. [global]
  11.  
  12. [globalVar = GP:L = 1]
  13. config.baseURL = http://de.meinedomain.de/
  14. config.sys_language_uid = 1
  15. config.language = de
  16. config.locale_all = de_DE.utf8
  17. [global]
  18.  
  19. [globalVar = GP:L = 2]
  20. config.baseURL = http://nl.meinedomain.de/
  21. config.sys_language_uid = 2
  22. config.language = nl
  23. config.locale_all = nl_NL.utf8
  24. [global]


Du müsstest evtl. für das obige Beispiel den Parameter "L" und die "config.sys_language_uid" entsprechend Deiner Konfiguration anpassen.

Liebe Grüße

samefa
Verfasst am: 29.04.2008 [15:25]
MrLuke

[Themenersteller]
dabei seit: 18.12.2007
Beiträge: 27

Erstmal vielen Dank samefa für die Bemühungen, denn dein Lösungsansatz funktioniert :)

Inzwischen habe ich noch eine Alternative gefunden: Und zwar habe ich jeder Sprache ein Extension Template zugewiesen, in welcher ich die baseURL entsprechend überschreibe und das entryLevel meiner Navigation auf 1 setze.

Das Problem hierbeit ist, dass bei entryLevel = 1 auch die Alias der Sprache innerhalb der Verlinkung gesetzt wird.

Beispiel:
>> fr.meinedomain.de/fr/testseite0.html
>> fr.meinedomain.de/fr/unterseite1/testseite1.html
>> fr.meinedomain.de/fr/unterseite2/testseite2.html

Über die Einbindung eines PHP Scirpt kann ich die OUTPUT BUFFERING Funktionen nutzen, um z.B. das "/fr/" aus der Verlinkung zu entfernen. Dies führt jedoch zu einem Fehler, da das Typosystem den Unterordner sucht.

Fehlerbeschreibung: Reason: Segment "testseite1" was not a keyword for a postVarSet as expected!

Ich müsste jetzt hingehen und eine ähnliche SWITCH Abfrage zum festlegen der postVarSet setzen, denke ich?! Aber wie?!


Danke und Gruß,
Mr.Luke

[Dieser Beitrag wurde 2 mal bearbeitet. Zuletzt am 29.04.2008 um 16:27]
Verfasst am: 29.04.2008 [18:35]
samefa

dabei seit: 30.04.2007
Beiträge: 28

Hallo MrLuke,

schaue doch mal unter
www.hann3mann.de/web-artikel/8/Loesung-fuer-postVarSet-as-expected.html
nach.

Liebe Grüße

samefa




 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 22.09.
in Espelkamp:
Freitag, 10.10.

TYPO3 Intensivschulung
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:

Mi., 24.09. - Fr., 26.09.
in Espelkamp:

Mo., 06.10. - Mi., 08.10.
in Würzburg:
Mo., 27.10. - Mi., 29.10.

TYPO3 Extensionschulung
in Berlin:
Mo., 29.09. - Mi., 01.10.
in Espelkamp:
Mo., 13.10. - Mi., 15.10.