Realurl: URL für rss Feed definieren

27. August 2015

In einem bestehenden Typo3 Projekt mit aktiver RealUrl Extension sollte ich eine RSS Feed Seite mit speziellen Informationen zu neuen Artikeln hinzufügen. Ich habe also in meiner Extension einen neuen Type mit der Nummer 888 definiert:

  1. rssarticles = PAGE
  2. rssarticles {
  3. config {
  4. disableAllHeaderCode = 1
  5. xhtml_cleaning = 0
  6. admPanel = 0
  7. additionalHeaders = Content-type:text/xml; charset=utf-8
  8. }
  9. typeNum = 888
  10. 10 = USER
  11. 10 {
  12. extensionName = PackageExtensionname
  13. pluginName = RssNewestArticles
  14. vendorName = Package
  15. userFunc = tx_extbase_core_bootstrap->run
  16. }
  17. }

Unter http://projekt.de/index.php?type=888&id=33 (wobei 33 einfach irgendeine Seite ist) war das ganze nun erreichbar und tat aus, was es sollte. Ich wollte das ganze nun so einrichten, dass man diesen Feed über http://projekt.de/feed.rss oder über http://projekt.de/rss/ erreicht und, naiv wie ich bin, dachte ich mir, dass RealUrl mit so einer einfachen Aufgabe sicherlich problemlos fertig wird. Umso größer meine Enttäuschung (Wut), als man mir auf Nachfrage sagte: “Mach das vielleicht besser über die htaccess, ich glaube nicht, dass RealUrl das kann”. Ganz ehrlich, WAS? Ich dachte, RealUrl wäre genau für sowas da?! Aber nein, das übliche Spielchen mit Typo3: Dinge, die nach meinem Verständnis eigentlich ganz einfach sein sollten, sind TOTAL KOMPLIZIERT oder gehen gleich gar nicht. Ich habe also versucht, in meiner realurl_conf.php unter fileName eine neue feed.rss zu definieren und bei den keyValues type und id mitzugeben. Stellt sich raus: aus irgendeinem Grund kann man die ID nicht mitgeben und typeNum alleine führt im aktuellen Projekt leider dazu, dass auf die erste Seite weitergeleitet wird.
Nach langer Recherche war ich ernüchtert und habe nun auf eine behelfsmäßige Lösung zurückgegriffen. In meiner realurl_conf.php habe ich bei den preVars einen type hinzugefügt:

  1. $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array(
  2. '_DEFAULT' => array(
  3. 'preVars' => array(
  4. array(
  5. 'GETvar' => 'type',
  6. 'valueMap' => array(
  7. 'rss' => 888
  8. ),
  9. 'noMatch' => 'bypass',
  10. 'valueDefault' => 0,
  11. ),
  12. ),
  13. ...

Das alleine reichte leider nicht, weil sonst auch die Weiterleitung des HOME Elements gegriffen hat und ich auf die Startseite weitergeleitet wurde. Also habe ich in meiner Verzweiflung einfach über die URL meine Seite 33 mitgegeben. Die Seite heißt “Neue Artikel” und so habe ich nun meine RSS Seite aufgerufen über http://projekt.de/rss/neue-artikel
Damit erkennt RealUrl dann auch, dass es nicht die Startseite nehmen muss, sondern die Seite mit der ID 33. Ernüchternde Erkenntnis dieser Odyssee: RealUrl ist beknackt und die Typo3 Community nervt.