Trailerbild
Certified TYPO3 Integrator
Meine aktuelle Buchempfehlung:

Links

Website meiner Frau Martina Thiele:
externer Link folgtwww.tagesmutter- luebbecke.de

Zur Webseite vom Ferienhaus auf Usedom von meinem Bruder Christian Thiele:
externer Link folgtwww.am-jungfernberg.de

Sie sind hier: Startseite » TYPO3 » TYPO3-Tutorials » RealUrl

Beispiel für eine RealURL Konfiguration

Dies ist nur ein Beispiel für eine funktionierende RealURL-Konfiguration. Weiteres kann man dann in der Dokumentation finden.

Einträge in dem TypoScript-Setup

Sourcecode für Text-Editor optimiert zeigen.

config {
    prefixLocalAnchors = all
    simulateStaticDocuments = 0
    baseURL = http://www.domain.tld/
    tx_realurl_enable = 1
}

In TypoScript wird mit diesen Zeilen RealUrl aktiviert und gegebenenfalls SimulateStaticDocuments deaktiviert. Anzupassen wäre die baseURL mit der richtigen Domain. prefixLocalAnchors sorgt dafür, dass Ankerpunkte auch bei Verwendung von RealURL auf einer Seite richtig angesprungen werden können.

Einträge in die .htaccess-Datei

Sourcecode für Text-Editor optimiert zeigen.

RewriteEngine On
RewriteBase /
RewriteRule ^(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/ - [L]
RewriteRule ^typo3$ typo3/index_re.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php [L]

In der .htaccess-Datei müssen die Zeilen 2 und 8 gegenüber der Vorlage aus dem dummy-Paket modifiziert werden.

Einträge in typo3conf/localconf.php

In der Datei localconf.php im Verzeichniss typo3conf könnte z.B. der folgende Code stehen. Angepasst werden müsste vor allem die Zeile 36 mit der Seiten-ID Ihrer Rootseite.

Für die Standardsprache sollten Sie auf keinen Fall einen Wert definieren. Die Zeile 23 ist aus diesem Grund auch auskommentiert. Würde diese Zeile einkommentiert gäbe es "Duplicate Content", da dann der Inhalt unter dem Pfad www.domain.tld und www.domain.tld/de/ den gleichen Inhalt liefern würde.

Als Beispiel sind hier zwar am Ende einige TypeNum beschrieben, aber print.html sollte natürlich besser nicht verwendet werden. Besser für die Printansicht ist es, ein spezielles CSS für die Printausgabe zu definieren!

Das Beispiel für die localconf.php beinhaltet auch schon die Konfiguration für die Extension tt_news.

Zu Zeile 105:
Durch den Eintrag 'defaultToHTMLsuffixOnPrev' => 1, werden die Pfade so erzeugt, dass am Ende des Pfades kein Ordner, sondern eine statische HTML-Seite simuliert wird.

Hinweis zu den aktuellen RealURL-Versionen

Die aktuellen Versionen haben die Möglichkeit, zwischen einer automatischen Konfiguration und einer manuellen Konfiguration zu wechseln. Falls Sie die manuelle Konfiguration benutzen, dann wird der Teil, der vorher in der localconf.php nun in der realurl_conf.php eingetragen! Hier muss der beschriebene PHP-Code noch mit "<?php" und "?>" umschlossen werden!

Sourcecode für Text-Editor optimiert zeigen.

  1. $TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
  2. $TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
  3.     '_DEFAULT' => array(
  4.         'init' => array(
  5.             'enableCHashCache' => 1,
  6.             'appendMissingSlash' => 'ifNotFile',
  7.             'enableUrlDecodeCache' => 1,
  8.             'enableUrlEncodeCache' => 1,
  9.             'postVarSet_failureMode' => '',
  10.         ),
  11.         'redirects' => array(),
  12.         'preVars' => array(
  13.             array(
  14.                 'GETvar' => 'no_cache',
  15.                     'valueMap' => array(
  16.                         'nc' => 1,
  17.                     ),
  18.                     'noMatch' => 'bypass',
  19.                 ),
  20.                 array(
  21.                     'GETvar' => 'L',
  22.                     'valueMap' => array(
  23.                         # 'de' => '0',
  24.                         'en' => '1',
  25.                     ),
  26.                     'valueDefault' => 'de',
  27.                     'noMatch' => 'bypass',
  28.                 ),
  29.             ),
  30.             'pagePath' => array(
  31.                 'type' => 'user',
  32.                 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
  33.                 'spaceCharacter' => '-',
  34.                 'languageGetVar' => 'L',
  35.                 'expireDays' => 7,
  36.                 'rootpage_id' => 1,
  37.                 'firstHitPathCache' => 1,
  38.             ),
  39.             'fixedPostVars' => array(),
  40.             'postVarSets' => array(
  41.                 '_DEFAULT' => array(
  42.                     // news archive parameters
  43.                     'archive' => array(
  44.                         array(
  45.                             'GETvar' => 'tx_ttnews[year]' ,
  46.                         ),
  47.                         array(
  48.                             'GETvar' => 'tx_ttnews[month]' ,
  49.                             'valueMap' => array(
  50.                             'january' => '01',
  51.                             'february' => '02',
  52.                             'march' => '03',
  53.                             'april' => '04',
  54.                             'may' => '05',
  55.                             'june' => '06',
  56.                             'july' => '07',
  57.                             'august' => '08',
  58.                             'september' => '09',
  59.                             'october' => '10',
  60.                             'november' => '11',
  61.                             'december' => '12',
  62.                         )
  63.                     ),
  64.                 ),
  65.                 // news pagebrowser
  66.                 'browse' => array(
  67.                     array(
  68.                         'GETvar' => 'tx_ttnews[pointer]',
  69.                     ),
  70.                 ),
  71.                 // news categories
  72.                 'select_category' => array (
  73.                     array(
  74.                         'GETvar' => 'tx_ttnews[cat]',
  75.                     ),
  76.                 ),
  77.                 // news articles anMd searchwords
  78.                 'article' => array(
  79.                     array(
  80.                         'GETvar' => 'tx_ttnews[tt_news]',
  81.                         'lookUpTable' => array(
  82.                             'table' => 'tt_news',
  83.                             'id_field' => 'uid',
  84.                             'alias_field' => 'title',
  85.                             'addWhereClause' => ' AND NOT deleted',
  86.                             'useUniqueCache' => 1,
  87.                             'useUniqueCache_conf' => array(
  88.                                 'strtolower' => 1,
  89.                                 'spaceCharacter' => '-',
  90.                             ),
  91.                         ),
  92.                     ),
  93.                     array(
  94.                         'GETvar' => 'tx_ttnews[backPid]',
  95.                     ),
  96.                     array(
  97.                         'GETvar' => 'tx_ttnews[swords]',
  98.                     ),
  99.                 ),
  100.             ),
  101.         ),
  102.         // configure filenames for different pagetypes
  103.         'fileName' => array(
  104.             'defaultToHTMLsuffixOnPrev' => 1,
  105.             'index' => array(
  106.                 'print.html' => array(
  107.                     'keyValues' => array(
  108.                         'type' => 98,
  109.                     ),
  110.                 ),
  111.                 'rss.xml' => array(
  112.                     'keyValues' => array(
  113.                         'type' => 100,
  114.                     ),
  115.                 ),
  116.                 'rss091.xml' => array(
  117.                     'keyValues' => array(
  118.                         'type' => 101,
  119.                     ),
  120.                 ),
  121.                 'rdf.xml' => array(
  122.                     'keyValues' => array(
  123.                         'type' => 102,
  124.                     ),
  125.                 ),
  126.                 'atom.xml' => array(
  127.                     'keyValues' => array(
  128.                         'type' => 103,
  129.                     ),
  130.                 ),
  131.             ),
  132.         ),
  133.     ),
  134. );

Wichtiger Hinweis!

Sollten Sie den "Pagepath" über den Web-Menüpunkt Info->Speaking Url Management ändern, kann es Ihnen passieren, dass die Pfade in Links und Menüs nicht aktualisiert werden.

Als Workaround hilft es, den Seitencache zu löschen und dann die Seiten mit einem anderen Browser zu öffnen, bei dem man nicht als BE-User eingeloggt ist.