Zum Inhalt springen

Gibt es ein Tutorial für realUrl mit mehreren Domains?

Erstellt am 28. Juli 2009 · 4 Antworten · letzte Antwort am 29. Juli 2009

Tags: RealURL, URLs & Routing, Frage

moberndoerfer ·

Hallo zusammen, hier mein allererster Post, und der gleich mit ziemlichen Kopfschmerzen.
Mein Problem ist, dass ich mehrere Seitenbäume mit einer jeweiligen Domain in einer einzelnen Typo3-Installation fahren möchte. Jeder Seitenbaum hat dann eine eigene Sprache. Der Grund ist, dass zum beispiel die TLD .co.uk für die englische Sprache steht und der Auftraggeber möchte damit ein besseres Ranking im englischen Google haben. Das gilt auch für die anderen Länder, etwa .es für Spanien.

Aktuell habe ich die Deutsche Version mit realUrl wunderbar ans Laufen gebracht, die Seiten werden alle mit http://www.domain.de/oberseite/unterseite.html im Browser referenziert. In der .htaccess habe ich redirects gesetzt, um Zugriffe auf http://www.domain.de/index.php?id=123 auf die richtigen Seiten per 301-Umleitung zu setzen. Klappt auch wunderbar.

Ich habe also im Backend einen neuen Baum für die .co.uk angelegt und ihr auch eine Domain zugewiesen. In der localconf.php habe ich dann die Einträge für realUrl angepasst:

//Beginn REAL URL
      $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['linkData-PostProc'][] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->encodeSpURL';
      $TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['checkAlternativeIdMethods-PostProc'][] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->decodeSpURL';
      $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urldecodecache'] = 'tx_realurl_urldecodecache';
      $TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
      $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
          'init' => array(
              'enableCHashCache' => 1
          ),
          'preVars' => array(
              array(
                  'GETvar' => 'no_cache',
                  'valueMap' => array(
                      'no_cache' => 1,
                  ),
                  'noMatch' => 'bypass',
                      ),
              array(
                      'GETvar' => 'L',
                      'valueMap' => array(
                      'en' => '1',
                      'cs' => '2',
                      ),
                      'noMatch' => 'bypass',
                      ),
              array(
                      'GETvar' => 'type',
                      'valueMap' => array(
                      'print' => '98',
                      ),
                      'noMatch' => 'bypass',
                      ),
              ),
          'fileName' => array (
                      'defaultToHTMLsuffixOnPrev' => 1,
              'index' => array(
                  'barrierefrei.html' => array(
                      'keyValues' => array(
                                              'type' => 96,
                      )
                  ),
                  'print.html' => array(
                      'keyValues' => array(
                                              'type' => 94,
                      )
                  ),
                      ),
          ),
          'postVarSets' => array(
              '_DEFAULT' => array (
                  'index' => array(
                      array(
                          'GETvar' => '',
                      ),
                  ),

                  'article' => array(
                      array(
                          'GETvar' => 'tx_ttnews[tt_news]',
                      ),
                      array(
                          'GETvar' => 'tx_ttnews[backPid]',
                      ),
                  ),
                  'category' => array(
                      array(
                          'GETvar' => 'tx_ttnews[cat]',
                      ),
                  ),
                  'neste' => array(
                      array(
                          'GETvar' => 'tx_ttnews[pointer]',
                      ),
                              ),
                  'chatroom' => array(
                      array(
                          'GETvar' => 'tx_vjchat_pi1[uid]',
                      ),
                  ),
                  'chat' => array(
                      array(
                          'GETvar' => 'tx_vjchat_pi1[view]',
                      ),
                  ),
              ),
          ),
          'pagePath' => array(
              'type' => 'user',
              'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
              'spaceCharacter' => '-',
              'languageGetVar' => 'L',
              'expireDays' => 0,
              'rootpage_id' => 133,
          ),
      );
      // ENDE REAL URL 
// Updated by TYPO3 Extension Manager 17-07-09 11:44:54

// Neu hinzugefuegt fuer mehrere Domains

 $TYPO3_CONF_VARS['EXTCONF']['realurl']['www.domain.de'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
$TYPO3_CONF_VARS['EXTCONF']['realurl']['www.domain.co.uk'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
$TYPO3_CONF_VARS['EXTCONF']['realurl']['www.domain.co.uk']['pagePath']['rootpage_id'] = 212;

Im Setup des Templates der .co.uk habe ich folgende Einstellungen eingetragen:

// RealURL-Einstellungen

config.simulateStaticDocuments = 0
config.baseURL = http://www.domain.co.uk/
config.tx_realurl_enable = 1

Damit ist die co.uk. nicht erreichbar. Vom Backend aus kann ich mir einzelne Seiten anzeigen, die aber mit http://www.domain.co.uk/index.php?id=123 angezeigt werden. Die Links werden falsch referenziert, also das Kontaktformular ist dann mit http://www.domain.de/topmenu/contact.html verlinkt, dabei gibt es diese Seite gar nicht. Richtig wäre http://www.domain.de/topmenu/contact.html.

Ich weiß im Moment nicht, wo man am besten ansetzen soll. Hat jemand einen Tip, wie man grundsätzlich mehrere Domains mit realUrl umsetzen kann?

Mit bestem Dank
Markus

moberndoerfer ·

Danke für den Hinweis, habe mir den Text englischen Text in russischer Satzstellung auch brav durchgelesen. Dabei bin ich auch auf das andere Tutorial gestoßen: http://dmitry-dulepov.com/article/realurl-separate-language-domains-in-an-easy-way.html

Nach bestem Wissen und Gewissen habe ich den Beispielcode in meine localconf.php integriert und eine Übersetzung angelegt. Wenn ich vom Backend aus die englische Sprache aufrufe, bekomme ich eine Seite mit der passenden Domain, aber noch den deutschen Inhalten dargestellt. Was nicht wirklich weiter hilft.

Die localconf.php sieht jetzt so aus:

//Beginn REAL URL
      $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['linkData-PostProc'][] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->encodeSpURL';
      $TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['checkAlternativeIdMethods-PostProc'][] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->decodeSpURL';
      $TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urldecodecache'] = 'tx_realurl_urldecodecache';
      $TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
      $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
          'init' => array(
              'enableCHashCache' => 1
          ),
          'preVars' => array(
              array(
                  'GETvar' => 'no_cache',
                  'valueMap' => array(
                      'no_cache' => 1,
                  ),
                  'noMatch' => 'bypass',
                      ),
              array(
                      'GETvar' => 'L',
                      'valueMap' => array(
                      'de' => '0',
                      'en' => '1',
                      'fr' => '2',
                      'ru' => '3',
                      'cz' => '4',
                      'es' => '5',
                      'it' => '6',
                      ),
                      'noMatch' => 'bypass',
                      
                      '_DOMAINS' => array(
                        'encode' => array(
                          array(
                            'GETvar' => 'L',
                            'value' => '0',
                            'useConfiguration' => 'domain.de',
                            'urlPrepend' => 'http://www.domain.de'
                          ),
                          array(
                            'GETvar' => 'L',
                            'value' => '1',
                            'useConfiguration' => '2m-domain.de',
                            'urlPrepend' => 'http://www.domain.com'
                          )
                        ),
                        'decode' => array(
                          'domain.de' => array(
                            'GETvars' => array(
                              'L' => '0',
                            ),
                            'useConfiguration' => 'domain.de'
                          ),
                          'domain.com' => array(
                            'GETvars' => array(
                              'L' => '1',
                            ),
                            'useConfiguration' => 'domain.de'
                          )
                        )
                      )

              ),

              array(
                      'GETvar' => 'type',
                      'valueMap' => array(
                      'print' => '98',
                      ),
                      'noMatch' => 'bypass',
                      ),
              ),
          'fileName' => array (
                      'defaultToHTMLsuffixOnPrev' => 1,
              'index' => array(
                  'barrierefrei.html' => array(
                      'keyValues' => array(
                                              'type' => 96,
                      )
                  ),
                  'print.html' => array(
                      'keyValues' => array(
                                              'type' => 94,
                      )
                  ),
                      ),
          ),
          'postVarSets' => array(
              '_DEFAULT' => array (
                  'index' => array(
                      array(
                          'GETvar' => '',
                      ),
                  ),

                  'article' => array(
                      array(
                          'GETvar' => 'tx_ttnews[tt_news]',
                      ),
                      array(
                          'GETvar' => 'tx_ttnews[backPid]',
                      ),
                  ),
                  'category' => array(
                      array(
                          'GETvar' => 'tx_ttnews[cat]',
                      ),
                  ),
                  'neste' => array(
                      array(
                          'GETvar' => 'tx_ttnews[pointer]',
                      ),
                              ),
                  'chatroom' => array(
                      array(
                          'GETvar' => 'tx_vjchat_pi1[uid]',
                      ),
                  ),
                  'chat' => array(
                      array(
                          'GETvar' => 'tx_vjchat_pi1[view]',
                      ),
                  ),
              ),
          ),
          'pagePath' => array(
              'type' => 'user',
              'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
              'spaceCharacter' => '-',
              'languageGetVar' => 'L',
              'expireDays' => 0,
              'rootpage_id' => 133,
          ),
      );
      // ENDE REAL URL 
// Updated by TYPO3 Extension Manager 17-07-09 11:44:54

$TYPO3_CONF_VARS['EXTCONF']['realurl']['domain.de'] =
    $TYPO3_CONF_VARS['EXTCONF']['realurl']['domain.com'] = 'domain.de';

Hat vielleicht jemand eine Beispiel-Datei localconf.php für mich, die ich für meine Zwecke anpassen kann?

norbert7 ·

Hallo Markus,
ich hab ähnliche Seiten am Laufen, allerdings mit den verschiedenen Sprachen in einem Baum, aber ebenfalls z.B. soll die .com Domain englisch sein und die .de eben deutsch.

Hab im Setup folgende Spracheinstellungen stehen:

page.config {
  simulateStaticDocuments = 0
  tx_realurl_enable = 1
  prefixLocalAnchors = all
  linkVars = L
 
  # deutsch:
  baseURL = http://www.domain.de/
  sys_language_uid = 0
  htmlTag_langKey = de-DE
  language = de
  locale_all = de_DE
}
 
# englisch:
[globalString = ENV:HTTP_HOST=www.domain.com]
  page.config{
    baseURL = http://www.domain.com/
    sys_language_uid = 1
    language = en
    locale_all = en_EN
    htmlTag_langKey = en
  }
[global]

und folgendes steht bei mir noch in der localconfig.php:

// Host abfragen und getVar setzen:
switch(t3lib_div::getIndpEnv('HTTP_HOST')){
   case 'www.domain.de';
     $_GET['L'] = 0;
     break;
   case 'www.domain.com';
     $_GET['L'] = 1;
     break;
}

Das steht vor den Angaben für realurl.

Vieleicht hilft Dir das bissel auf die Sprünge.

MfG