CMS

URL Pfadsegmente in Typo3 mit RealUrl entfernen

19.03.2012

Beim Einsatz von RealUrl erscheinen bei bestimmten Datensätzen (z.B. tt_news) URL Pfadsegmente, die nicht erwünscht sind. Mein Ziel war es, genau diese Pfadsegmente zu entfernen.

Typo3 Url Pfadsegmente mit RealUrl verkürzen

Welche Probleme können dadurch entstehen?

  • Aus SEO-Sicht sollen Urls möglichst kurz sein
  • Aus Sicht der Mehrsprachigkeit sollten Urls durchgängig in der gewünschten Sprache dargestellt werden

Ich denke, das dürfte nicht nur mir so gehen. Ich habe tt_news sehr heufig im Einsatz und benötige gut lesbare und wunschgemäße URLs. Für lesebare URLs verwende ich, wie viele, die Typo3 Extension RealUrl. Nachdem ich die Konfigurationsdatei für RealUrl modifiziert habe sind die URLs in der tt_news Singelview lesbar, aber es stört(e) mich immer mindestens ein Pfadsegment.

Übliche Konfiguration der realurl_conf.php

Normalerweise wird in den postVarSets der anzuzeigende Pfad konfiguriert. Aufgrund des exemplarischen arrays "artikeldetails" ergibt sich eine URL wie www.domain.de/newslistenseite/newsdetailseite/artikeldetails/newstitel/.


<?
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
  ...
  'postVarSets' => array(
    'artikeldetails' => array(
      array(
        'GETvar' => 'tx_ttnews[tt_news]',
        'lookUpTable' => array(
          'table' => 'tt_news',
          'id_field' => 'uid',
          'alias_field' => 'title',
          'addWhereClause' => ' AND NOT deleted',
          'useUniqueCache' => 1,
          'useUniqueCache_conf' => array(
            'strtolower' => 1,
            'spaceCharacter' => '_'
          ),
          'languageGetVar' => 'L',
          'languageExceptionUids' => '',
          'languageField' => 'sys_language_uid',
          'transOrigPointerField' => 'l18n_parent'
        )
      )
    ),
  ),
);
?>

Modifizierte Konfiguration

Um den array-Namen ".../artikeldetails/..." nicht in der URL anzuzeigen, wird die Konfiguration in die fixedPostVars geschrieben.


<?
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
  ...
  'fixedPostVars' => array(
    'ttnewsDetailConfiguration' => array(
      array(
        'GETvar' => 'tx_ttnews[tt_news]',
        'lookUpTable' => array(
          'table' => 'tt_news',
          'id_field' => 'uid',
          'alias_field' => 'title',
          'addWhereClause' => ' AND NOT deleted',
          'useUniqueCache' => 1,
          'useUniqueCache_conf' => array(
            'strtolower' => 1,
            'spaceCharacter' => '_'
          ),
          'languageGetVar' => 'L',
          'languageExceptionUids' => '',
          'languageField' => 'sys_language_uid',
          'transOrigPointerField' => 'l18n_parent'
        )
      )
    ),
    '15' => 'ttnewsDetailConfiguration', // Override with Single View Page (ID15)
  ),
  ...
);
?>

resultierende URL:www.domain.de/newslistenseite/newsdetailseite/newstitel/
anstelle von:www.domain.de/newslistenseite/newsdetailseite/artikeldetails/newstitel/

Durch die modifizierte Konfiguration entfallen mögliche Probleme mit Mehrsprachigkeit. Ansonsten hieße das Pfadsegment ".../artikeldetails/..." immer gleich, auch bei anderen lokalisierten Sprachen.

In der Zeile "'15' => 'ttnewsDetailConfiguration'," entspricht die '15' der Page ID der Singleview Page von tt_news und muss natürlich an die eigenen Bedürfnisse angepasst werden.

Das ganze funktioniert natürlich auch für andere Extension wie tt_products, tt_address uvm..

Viel Spaß mit schönen URLs.

Autor: Thomas Kakuschke