RealURL mit mehreren Domains

  • Gregor Gregor
    R2-D2
    0 x
    65 Beiträge
    0 Hilfreiche Beiträge
    18. 02. 2010, 15:58

    Hallo zusammen,

    ich habe auf einer Typo3-Installation zwei unterschiedliche Domains für zwei Seitenbäume konfiguriert.

    Struktur ist ungefähr so

    root
    - Domain 1
    -- Unterseite 1
    - Domain 2
    -- Unterseite 2

    Auf beiden Seitenbäumen einzeln funktioniert RealURL einwandfrei. Und auch das Crosslinking funktioniert einwandfrei ... jedenfalls fast. Und zwar weigert sich das System konsequent, ein Rewrite der URLs vorzunehmen, die aus dem anderen Seitenbaum stammen.

    Heißt: Links bei Domain 1 lauten dann z.B. /unterseite1/, der Link auf Unterseite 2 aus dem anderen Seitenbaum hat lediglich index.php?id=2. Gleiches gilt für Links von Seitenbaum 2 auf Seitenbaum 1.

    "Interne" Links werden umgeschrieben, Links auf den anderen Seitenbaum nicht.

    Hier mal meine Konfiguration.

    Typo3 4.3.1
    RealURL 1.7.0
    Domainfactory Server-System, also kein IIS oder so

    localconf.php

    1. $TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    2. '_DEFAULT' => array(
    3. 'init' => array(
    4. 'enableCHashCache' => 1,
    5. 'appendMissingSlash' => 'ifNotFile',
    6. 'enableUrlDecodeCache' => 0,
    7. 'enableUrlEncodeCache' => 0,
    8. ),
    9. 'redirects' => array(),
    10. 'preVars' => array(
    11. 'GETvar' => 'no_cache',
    12. 'valueMap' => array(
    13. 'nc' => 1,
    14. ),
    15. 'noMatch' => 'bypass',
    16. ),
    17. 'GETvar' => 'L',
    18. 'valueMap' => array(
    19. 'en' => '1',
    20. ),
    21. 'noMatch' => 'bypass',
    22. ),
    23. ),
    24. 'pagePath' => array(
    25. 'type' => 'user',
    26. 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
    27. 'spaceCharacter' => '-',
    28. 'languageGetVar' => 'L',
    29. 'expireDays' => 7
    30. ),
    31. etc. etc.

    zusätzlich localconf.php, nach der _DEFAULT-Konfiguration

    1. TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['enableDomainLookup'] = 1;
    2. $TYPO3_CONF_VARS['EXTCONF']['realurl']['domain1.de'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
    3. $TYPO3_CONF_VARS['EXTCONF']['realurl']['domain1.de']['pagePath']['rootpage_id'] = 1;
    4. $TYPO3_CONF_VARS['EXTCONF']['realurl']['domain2.de'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
    5. $TYPO3_CONF_VARS['EXTCONF']['realurl']['domain2.de']['pagePath']['rootpage_id'] = 66;

    Im Typoscript-Template habe ich bei beiden Seitenbäumen folgendes:

    [TS]#Konfiguration und Aktivierung von Realurl
    config.simulateStaticDocuments = 0
    config.tx_realurl_enable = 1
    config.baseURL = http://domain1.de/ bzw. http://domain2.de/
    config.typolinkCheckRootline = 1
    config.typolinkEnableLinksAcrossDomains = 1
    [/TS]

    Zusätzlich ist bei den jeweiligen Startseiten der Seitenbäume das Häckchen für "Wurzelebene" gesetzt und Setups/Constants werden ebenfalls gelöscht.

    Verschiedenste Variationen von typolinkCheckRootline und typolinkEnableLinksAcrossDomains haben keinen Effekt gehabt, was die fehlende Umschreibung von Links im anderen Seitenbaum angeht.

    Theoretisch sollte es so laut Anleitungen im Web funktionieren, tut es aber nicht. Und ich bin ehrlich gesagt überfragt, wo ich den Fehler gemacht habe.

    Sollte ich irgendwelchen erforderlichen Infos übersehen haben, liefere ich die gerne nach.

    Freue mich über jeden Tipp :)

    Gruß
    Gregor


  • 1
  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    3083 Beiträge
    132 Hilfreiche Beiträge
    19. 02. 2010, 09:57

    Hallo Gregor.

    Also mir fallen zwei Dinge ein:

    1. Sicher, dass enableDomainLookup auf dieser Ebene ist? Gehört das nicht in das init-Array? Hab leider auf die Schnelle nichts dazu gefunden.

    2. Sind für die Rootseiten auch Domain-Records in TYPO3 angelegt?

    Viele Grüße
    Julian

  • Gregor Gregor
    R2-D2
    0 x
    65 Beiträge
    0 Hilfreiche Beiträge
    19. 02. 2010, 11:32

    Hallo Julian,

    danke für die Unterstützung :)

    Zu 1.: Ich habe "enableDomainLookup" jetzt auch mal im init-Array getestet. Effekt hat es keinen. Ich habe allerdings grade auch mal die Realurl-Dateien nach diesem Key durchsucht in der Hoffnung, herauszufinden, ob diese Konfiguration evtl. woanders ausgelesen wird. Aber entweder bin ich blind oder diese Konfiguration wird nirgends berücksichtigt. Jedenfalls gibt das bei einer Suche keinen Treffer.

    Habe aber festgestellt, dass RealURL selber eine Überprüfung durchführt, ob mehr als ein Domainrecord im System vorhanden ist und dann automatisch auf eine MultiDomain-Konfiguration wechselt. Also evtl. diese Konfigurationseinstellung garnicht gebraucht wird.

    Zu 2: Domain Records sind jeweils für die betreffenden Root-Seiten gesetzt und werden auch korrekt zugeordnet. Also eingabe von domain1.de resultiert in der Rootseite von Baum 1, domain2.de resultiert in der Root-Seite von Baum 2.

    Habe jetzt einen Workaround installiert, indem ich über force_realurl oder so einen Rewrite der index.php?id=XY-Links auf die RealURL-Links erzwinge. Aber schön ist das ja nicht :(

    Gruß
    Gregor

  • FreeBatman FreeBatma...
    Jedi-Meister
    0 x
    301 Beiträge
    0 Hilfreiche Beiträge
    27. 04. 2010, 16:28

    Hallo,

    probier mal folgenden Tipp.

    [url=]http://www.seo24.at/realurl-mehrere-domains/[/url]

    Damit hat es bei einer Inst. mit 8 Domains und 3 Homepages
    und gefühlten 2 monaten recherche prima geklappt.

    Allerdings habe ich gerade wieder ein "postVarSet as expected" Problem :-( .. grrrrrrr!!!

  • dr.sven dr.sven
    T3PO
    0 x
    30 Beiträge
    0 Hilfreiche Beiträge
    27. 04. 2010, 17:16

    Moin,

    auch wenn der Post von Gregor schon ein wenig her ist, trotzdem nochmal meine Lösung. Sie erweitert im Prinzip nur den Tipp von FreeBatman:

    localcon.php:

    1. $RootPID = array(
    2. 'domain1.de' => '2',
    3. 'domain-1.de' => '2',
    4. 'domain2.de' => '3',
    5. 'domain3.de' => '4'
    6. );
    7. [...]
    8. 'rootpage_id' => $RootPID[$_SERVER['HTTP_HOST']]

    1. [globalString = ENV:HTTP_HOST=domain1.de/, ENV:HTTP_HOST=domain-1.de/]
    2. page.config.baseURL = htt p://www .domain1.de/
    3. [global]
    4. [globalString = ENV:HTTP_HOST=domain2.de/]
    5. page.config.baseURL = htt p://www .domain2.de/
    6. [global]
    7. [globalString = ENV:HTTP_HOST=domain3.de/]
    8. page.config.baseURL = htt p://www .domain3.de/
    9. [global]

    Achtung: Conditions dürfen nicht innerhalb eines Namespace stehen

    Abschließend noch für jede Domain eine Domäne an der entsprechenden Stelle im Seitenbaum anlegen, fertig.

    Falls ich mich an irgendeiner Stelle undeutlich oder falsch ausgedrückt habe, korrigiert mich :D

  • FreeBatman FreeBatma...
    Jedi-Meister
    0 x
    301 Beiträge
    0 Hilfreiche Beiträge
    27. 04. 2010, 17:56

    richtig das gehört auch noch ins TS.

    [b]UND[/b]

    Ich habe in meinem [b]ersten [/b]TS noch folgendes drinnenstehen!

    1. config.typolinkCheckRootline = 1
    2. #config.typolinkEnableLinksAcrossDomains = 1
    3. #config.content_from_pid_allowOutsideDomain=1

    Was auch noch [b]ganz[/b] wichtig ist! Im Wiki gelesen!
    Die anderen habe ich nur der volständigkeitshalber zugefügt.
    Haben bei mir nie eine Wirkung gezeigt.

    [b]UND[/b]

    1. 'languageGetVar' => 'L',
    2. 'expireDays' => 3,

    evtl. erweitern mit

    1. 'languageGetVar' => 'L',
    2. 'expireDays' => 3,
    3. 'firstHitPathCache' => 1,

    siehe
    [url=]http://www.vincent-tietz.de/blog/goto/articles/segment-was-not-a-keyword-for-a-postvarset-as-expected/[/url]

    [b]UND[/b]

    UrlTool Extension ist dann auch noch Dein freund um den URL-Cache einfach zu löschen und die conf-datei zu editieren.

    Da ich momentan total am verzweifeln bin und fertig sauber ausgearbeitete Lösungen wohl leider:'( nicht immer gültig sind bekomm ich es bei meiner 2ten Typo3 Installation einfach nicht hin. Deswegen hätt ich noch ein paar Fragen.

    Auch nachdem ich gefunden habe das dass Häckchen "ist rootpage" bei der ersten Domain nicht gesetzt war funzt es noch immer nicht. Ich lande bei einem Link von der 2ten Domain die auf die erste Domain führen soll immer auf die Startseite der 2ten Domain.

    In meiner TS der 2ten Domain habe ich folgendes im setup

    1. [globalString = ENV:HTTP_HOST=www.domain2.de]
    2. config.baseURL = htt p://www .domain2.de/
    3. [global]
    4.  
    5. [globalString = ENV:HTTP_HOST=www.domain2.de]
    6. config.baseURL = htt p://www .domain2.de/
    7. [global]

    Eine Definition des GlobalString für Domain1 habe ich niergends festgelegt, da dies bei der Real-URL Einrichtung im ersten TS festgelegt wird.

    1. config.baseURL = http ://www.domain1.de/
    festgelegt habe.

    config.baseURL habe ich in meinem 2ten TS remarked, da dieses ja durch globalString definiert wird. Oder habe ich da was falsches verstanden?

    Muss dieser Eintrag auch ins erste TS mit domain1.de rein!
    bei meiner funktionierenden Lösung habe ich das nicht drin!

  • FreeBatman FreeBatma...
    Jedi-Meister
    0 x
    301 Beiträge
    0 Hilfreiche Beiträge
    02. 09. 2010, 11:31

    so .. und nachdem RealUrl downgegraded worden ist um mit der installierten Version kompatibel zu sein funktioniert es nun auch so wie es soll!

  • 1