TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

RealURL mit mehreren Domains


Autor Nachricht
Verfasst am: 18. 02. 2010 [15:58]
Gregor
Themenersteller
Dabei seit: 04.10.2006
Beiträge: 45
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
PHP
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
	'_DEFAULT' => array(
		'init' => array(
			'enableCHashCache' => 1,
			'appendMissingSlash' => 'ifNotFile',
			'enableUrlDecodeCache' => 0,
			'enableUrlEncodeCache' => 0,
		),
		'redirects' => array(),
		'preVars' => array(
			array(
				'GETvar' => 'no_cache',
				'valueMap' => array(
					'nc' => 1,
				),
				'noMatch' => 'bypass',
			),
			array(
				'GETvar' => 'L',
				'valueMap' => array(
					'en' => '1',
				),
				'noMatch' => 'bypass',
			),
		),
		'pagePath' => array(
			'type' => 'user',
			'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
			'spaceCharacter' => '-',
			'languageGetVar' => 'L',
			'expireDays' => 7
		),
etc. etc.


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

PHP
TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['enableDomainLookup'] = 1;
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domain1.de'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domain1.de']['pagePath']['rootpage_id'] = 1;
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domain2.de'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domain2.de']['pagePath']['rootpage_id'] = 66;


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

TYPOSCRIPT
#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


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 icon_smile.gif

Gruß
Gregor
Profil
Verfasst am: 19. 02. 2010 [09:57]
Julian.Hofmann
Dabei seit: 18.05.2007
Beiträge: 1797
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
Profil
Verfasst am: 19. 02. 2010 [11:32]
Gregor
Themenersteller
Dabei seit: 04.10.2006
Beiträge: 45
Hallo Julian,

danke für die Unterstützung icon_smile.gif

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 icon_frown.gif

Gruß
Gregor
Profil
Verfasst am: 27. 04. 2010 [16:28]
FreeBatman
Dabei seit: 07.07.2006
Beiträge: 203
Hallo,

probier mal folgenden Tipp.

http://www.seo24.at/realurl-mehrere-domains/

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 icon_frown.gif .. grrrrrrr!!!
Profil
Verfasst am: 27. 04. 2010 [17:16]
dr.sven
Dabei seit: 02.12.2009
Beiträge: 29
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:
PHP
$RootPID = array(
                      'domain1.de' => '2',
                      'domain-1.de' => '2',
                      'domain2.de' => '3',
                      'domain3.de' => '4'
      ); 
[...]
'rootpage_id' => $RootPID[$_SERVER['HTTP_HOST']]


TYPOSCRIPT
[globalString = ENV:HTTP_HOST=domain1.de/, ENV:HTTP_HOST=domain-1.de/]
page.config.baseURL = htt p://www .domain1.de/
[global]
[globalString = ENV:HTTP_HOST=domain2.de/]
page.config.baseURL = htt p://www .domain2.de/
[global]
[globalString = ENV:HTTP_HOST=domain3.de/]
page.config.baseURL = htt p://www .domain3.de/
[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 icon_biggrin.gif
Profil
Verfasst am: 27. 04. 2010 [17:56]
FreeBatman
Dabei seit: 07.07.2006
Beiträge: 203
richtig das gehört auch noch ins TS.

UND

Ich habe in meinem ersten TS noch folgendes drinnenstehen!
TYPOSCRIPT
config.typolinkCheckRootline = 1
#config.typolinkEnableLinksAcrossDomains = 1
#config.content_from_pid_allowOutsideDomain=1


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

UND

TYPOSCRIPT
'languageGetVar' => 'L',
            'expireDays' => 3,


evtl. erweitern mit

TYPOSCRIPT
'languageGetVar' => 'L',
            'expireDays' => 3,
            'firstHitPathCache' => 1,


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

UND

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 leidericon_cry.gif 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

TYPOSCRIPT
[globalString = ENV:HTTP_HOST=www.domain2.de]
config.baseURL = htt p://www .domain2.de/
[global]
 
[globalString = ENV:HTTP_HOST=www.domain2.de]
config.baseURL = htt p://www .domain2.de/
[global]


Eine Definition des GlobalString für Domain1 habe ich niergends festgelegt, da dies bei der Real-URL Einrichtung im ersten TS festgelegt wird.
TYPOSCRIPT
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!

[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 27.04.2010 um 18:12.]
Profil
Verfasst am: 02. 09. 2010 [11:31]
FreeBatman
Dabei seit: 07.07.2006
Beiträge: 203
so .. und nachdem RealUrl downgegraded worden ist um mit der installierten Version kompatibel zu sein funktioniert es nun auch so wie es soll!
Profil