XML Sitemap erstellen in Typo3


Hallo,

heute stand ich mal wieder vor einem eigentlichen simplen Problem (natürlich nur in anderen CMS Systemen :) ), aber für Typo3 ist es dann doch eine aufwändige Sache. Ich wollte eine saubere XML Sitemap (besonders sinnvoll um neue Seiten schneller in Google bekannt zu machen) erzeugen die über http://domain.name/sitemap.xml zu erreichen ist. Tja der Gedanke ist einfach, in WordPress ist es ein Plugin, in Drupal ein Modul und auch in Joomla sind es maximal 5 Minuten Arbeit. Aber nicht mit Typo3, hier braucht man mal wieder Nerven aus Stahl um zum Ziel zu kommen :). Da ich diese habe und einige unter euch bestimmt nicht, werde ich euch anhand meiner heutigen Erfahrungen kurz erklären wie man zum gewünschten Ziel kommt.

Als erstes ist es erforderlich das unser Typo3 ein laufendes RealURL hat ( zum erstellen „lesbarer URLs) damit wir eine domain im dem Stile: http://domain.name/sitemap.xml bekommen, anonsten wird es auch nur eine /index.php=***.

Wir besorgen uns die Extension weeaar_googlesitemap und installieren sie wie gewohnt in unser Typo3system. Nach dem aktvieren der Extension erweitern wir unser Typoscript Setup um folgende Zeilen:

# Anpassungen für XML Sitemap
##***********************************************************************
sitemap = PAGE
sitemap {
typeNum = 200
10 >
10 < plugin.tx_weeaargooglesitemap_pi1
#pid der Root-Seite
10.pid_list = 1
10.recursive = 0
10.allowedDoktypes = 2,1,4
#Domain anpassen
10.domain = http://domain.name/
# Alle Sprachen, die bekannt gemacht werden sollen
10.showLanguages = 0,2,3,4,5,6
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
# Haltbarkeit falls man den Cache anschaltet
#cache_period = 86400
}

Wichtig ist das dabei Individuell die ID der Rootseite bei „10.pid_list = 1“ und die URL zum Projekt bei „10.domain = http://domain.name/“ angepasst wird. Der Rest kann bei Bedarf geändert werden.

Nun müssen wir noch unser RealURL konfigurieren um die sitemap.xml bekannt zu machen. Dafür begeben wir uns mit dem URLTool im Backend in den Bereich um die RealURL Konfiguration zu bearbeiten. Meine Konfiguration sieht so aus:

<?php

/**
*
* aeUrlTool default realurl configuration
* based on realurl-configuration of news.typo3.org
* http://news.typo3.org/about/realurl-configuration/
*
*/

$GLOBALS[‚TYPO3_CONF_VARS‘][‚EXTCONF‘][‚realurl‘] = array (
‚_DEFAULT‘ => array (
‚init‘ => array (
‚enableCHashCache‘ => ‚1‘,
‚appendMissingSlash‘ => ‚ifNotFile‘,
‚enableUrlDecodeCache‘ => ‚1‘,
‚enableUrlEncodeCache‘ => ‚1‘,
),
‚redirects‘ => array (
),
‚preVars‘ => array (
‚0‘ => array (
‚GETvar‘ => ’no_cache‘,
‚valueMap‘ => array (
’nc‘ => ‚1‘,
),
’noMatch‘ => ‚bypass‘
),
‚1‘ => array (
‚GETvar‘ => ‚L‘,
‚valueMap‘ => array (
‚de‘ => ‚0‘,
‚en‘ => ‚1‘,
),
’noMatch‘ => ‚bypass‘,
),
‚2‘ => array (
‚GETvar‘ => ‚lang‘,
‚valueMap‘ => array (
‚de‘ => ‚de‘,
‚en‘ => ‚en‘,
),
’noMatch‘ => ‚bypass‘,
),
),
‚pagePath‘ => array (
‚type‘ => ‚user‘,
‚userFunc‘ => ‚EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main‘,
’spaceCharacter‘ => ‚-‚,
‚languageGetVar‘ => ‚L‘,
‚expireDays‘ => ‚7‘,
‚rootpage_id‘ => ’34‘,
),
‚fixedPostVars‘ => array (
),
‚postVarSets‘ => array (
‚_DEFAULT‘ => array (
‚archive‘ => array (
‚0‘ => array (
‚GETvar‘ => ‚tx_ttnews[year]‘,
),
‚1‘ => array (
‚GETvar‘ => ‚tx_ttnews[month]‘,
‚valueMap‘ => array (
‚january‘ => ’01‘,
‚february‘ => ’02‘,
‚march‘ => ’03‘,
‚april‘ => ’04‘,
‚may‘ => ’05‘,
‚june‘ => ’06‘,
‚july‘ => ’07‘,
‚august‘ => ’08‘,
’september‘ => ’09‘,
‚october‘ => ’10‘,
’november‘ => ’11‘,
‚december‘ => ’12‘,
),
),
),
‚browse‘ => array (
‚0‘ => array (
‚GETvar‘ => ‚tx_ttnews[pointer]‘,
),
),
’select_category‘ => array (
‚0‘ => array (
‚GETvar‘ => ‚tx_ttnews[cat]‘,
),
),
‚article‘ => array (
‚0‘ => 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‘ => ‚-‚,
),
),
),
‚1‘ => array (
‚GETvar‘ => ‚tx_ttnews[swords]‘,
),
),
),
),
‚fileName‘ => array (
//
// if you don’t want .html-URLs set the following to „false“ (e.g. ‚defaultToHTMLsuffixOnPrev‘ => false,)
// then you get http://www.yourdomain.com/imprint/ instead of http://www.yourdomain.com/imprint.html
//
‚defaultToHTMLsuffixOnPrev‘ => true,
‚index‘ => array (
‚rss.xml‘ => array (
‚keyValues‘ => array (
‚type‘ => ‚100‘,
),
),
‚rss091.xml‘ => array (
‚keyValues‘ => array (
‚type‘ => ‚101‘,
),
),
‚rdf.xml‘ => array (
‚keyValues‘ => array (
‚type‘ => ‚102‘,
),
),
‚atom.xml‘ => array (
‚keyValues‘ => array (
‚type‘ => ‚103‘,
),
),
‚atom03.xml‘ => array(

‚keyValues‘ => array(

‚type‘ => 102,

),

),

’sitemap.xml‘ => array(

‚keyValues‘ => array(

‚type‘ => 200,

),

),

),

),

),
);

?>

Hinzugekommen zur standard Konfiguration ist der Teil ab „‚atom03.xml‘ => array“. Danach könnt ihr eure XML Sitemap unter http://domain.name/sitemap.xml aufrufen. Viel Spaß damit.

MFG

Sammy

1 Comments

  • martin (#)
    August 14th, 2010

    erst mal danke für die tutorials hier, das kann einem ne menge zeit ersparen.

    leider geht das so nicht. habe in der config die 5 zeilen ergänzt, aber ich bekomme immer noch keine sauberen urls…

    außerdem, da viele seiten mit der tt_news arbeiten und der größte vorteil dieser extension eben darin liegt, dass auch die news erkannt werden, wäre das hier noch ein toller zusatz.

    wesentlich einfacher wäre ansonsten:
    http://typo3.fruit-lab.de/typo3-extensions/mc-googlesitemap.html

    schöne grüße

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.