Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Why RealURL sucks - and how to fix it

44,573 views

Published on

RealURL ist eine der meistgenutzten Erweiterungen für TYPO3. Viele Anwender sind jedoch schon an der Konfiguration verzweifelt. Hier sind die Folien zu einem Vortrag anlässlich der TYPO3 Akademie 2011, der sich mit dem Thema RealURL befasst

Published in: Technology

Why RealURL sucks - and how to fix it

  1. 1. Why RealURL sucks... (and how to fix it) TYPO3 Akademie 2011Montag, 28. Februar 2011
  2. 2. RealURL • ist fantastisch • ist extrem flexibel • ABER ....!Montag, 28. Februar 2011
  3. 3. Was ist das Problem? Folie 3 von 3786Montag, 28. Februar 2011
  4. 4. 50 Bugfixes in 6 MonatenMontag, 28. Februar 2011
  5. 5. Montag, 28. Februar 2011
  6. 6. Warum RealURL ? • Lesbare URLs • für Menschen • für SuchmaschinenMontag, 28. Februar 2011
  7. 7. SimulateStatic • Home -> Produkte -> TV -> LCD [domain]/lcd.html • Home -> Impressum [domain]/impressum.htmlMontag, 28. Februar 2011
  8. 8. Installation • Konfigurationsdatei:Montag, 28. Februar 2011
  9. 9. Installation • Automatische Konfiguration: typo3conf/realurl_autoconf.php • Achtung: wird gelöscht bei Anlegen eines Domain- Records!Montag, 28. Februar 2011
  10. 10. InstallationMontag, 28. Februar 2011
  11. 11. Speicherformat Serialized: $GLOBALS[TYPO3_CONF_VARS][EXTCONF][realurl]=unserialize(a: 1:{s:8:"_DEFAULT";a:4:{s:4:"init";a:7:{s:16:"enableCHashCache".... Source (slow?!): $GLOBALS[TYPO3_CONF_VARS][EXTCONF][realurl]=array ( _DEFAULT => array ( init => array ( enableCHashCache => true, appendMissingSlash => ifNotFile,redirect, adminJumpToBackend => true, enableUrlDecodeCache => true, ....Montag, 28. Februar 2011
  12. 12. ohne Konfiguration • [domain]/index.php?id=123 • [domain]/123/ • [domain]/alias/Montag, 28. Februar 2011
  13. 13. Autokonfiguration • [domain]/index.php?id=123 • [domain]/seitentitel/ • [domain]/navigationstitel/ • [domain]/alias/Montag, 28. Februar 2011
  14. 14. Autokonfiguration • Nur für Basis-Konfiguration ohne Extensions mit GET VariablenMontag, 28. Februar 2011
  15. 15. Montag, 28. Februar 2011
  16. 16. /datei-downloads/software/windows/windows-xp.html /datei-downloads/programme.html /datei-downloads/programme/windows.html /datei-downloads/programme/windows/windows-xp.htmlMontag, 28. Februar 2011
  17. 17. /abc/programme.html /abc/programme/windows.html /abc/programme/windows/windows-xp.htmlMontag, 28. Februar 2011
  18. 18. /datei-downloads/software.html /datei-downloads/windows.html /datei-downloads/windows/windows-xp.htmlMontag, 28. Februar 2011
  19. 19. Funktionsweise RealURL • Seiten ID + Parameter -> URL • URL -> Seiten ID + ParameterMontag, 28. Februar 2011
  20. 20. Teile der URL Domain www.test.de preVars en pagePath shop/products/ fixedPostVars create postVarSets article/123/color fileName detail.htmlMontag, 28. Februar 2011
  21. 21. Kodierung Überschriften ueberschriften Académie française academie-francaise Español espanol Фотосессия fotosessija Ελλάδα ellada ‫מדינת ישראל‬ mdint-ishralMontag, 28. Februar 2011
  22. 22. Multi Domain [www.domain1.de] => array ( ... ), [www.domain1.de] => array ( ... ), [_DEFAULT] => array ( ... ),Montag, 28. Februar 2011
  23. 23. Multi Domain [_DEFAULT] => array ( ... ), [www.domain1.de] => array ( ... ), [www.domain2.de] => array ( ... ),Montag, 28. Februar 2011
  24. 24. Konfiguration [domain] init => array (...), redirects => array (...), redirects_regex => array (...), preVars => array (...), pagePath => array (...), fixedPostVars => array (...), postVarSets => array (...) fileName => array (...)Montag, 28. Februar 2011
  25. 25. init enableCHashCache => true, appendMissingSlash => ifNotFile,redirect, adminJumpToBackend => true, enableUrlDecodeCache => true, enableUrlEncodeCache => true, emptyUrlReturnValue => /, respectSimulateStaticURLs => true,Montag, 28. Februar 2011
  26. 26. init doNotRawUrlEncodeParameterNames => true, • tx_ttnews%5Btt_news%5D=3 wird zu • tx_ttnews[tt_news]=3Montag, 28. Februar 2011
  27. 27. init enableAllUnicodeLetters => true, • ermöglicht URLs in der Form http://name-der-domain.de/ /Montag, 28. Februar 2011
  28. 28. init postVarSet_failureMode => redirect_goodUpperDir,Montag, 28. Februar 2011
  29. 29. init postVarSet_failureMode => ignore,Montag, 28. Februar 2011
  30. 30. Montag, 28. Februar 2011
  31. 31. redirects redirects =>. array ( aktuelles/ => 301;http://spiegel.de, ),Montag, 28. Februar 2011
  32. 32. redirects_regex redirects_regex =>. array ( ^english/(.*) => 301;en/1, ^downloads/(.*) => ftp://dl.domain.tld/public/dl/1, ),Montag, 28. Februar 2011
  33. 33. Teile der URL Domain www.test.de preVars en pagePath shop/products/ fixedPostVars create postVarSets article/123/color fileName detail.htmlMontag, 28. Februar 2011
  34. 34. preVars • http://[domain]/en/news/articel.htmlMontag, 28. Februar 2011
  35. 35. preVars preVars => array ( 0 => array ( GETvar => L, valueMap =>. array ( en => 1, ), noMatch => bypass, ), ),Montag, 28. Februar 2011
  36. 36. preVars 1. Prüfe ob Eintrag in valueMap 2. Falls nicht gefunden, setze noMatch 3. Prüfe Eintrag in noMatch - bypass: Wert wird nicht gesetzt, fortfahren - null: Wert wird nicht gesetzt, ignoriere Rest 4. Datenbankabruf mit lookUpTable 5.Verarbeitung mit userFunc 6. Setze Wert mit valueDefaultMontag, 28. Februar 2011
  37. 37. lookUpTable => array( table => tt_news, id_field => uid, alias_field => title, maxLength => 50, useUniqueCache => 1, useUniqueCache_conf => array ( strtolower => 1. spaceCharacter => -, encodeTitle_userProc => ... ) addWhereClause => AND NOT deleted, languageGetVar => L, languageExceptionUids => , languageField => sys_language_uid, transOrigPointerField => l18n_parent, enable404forInvalidAlias => 1, autoUpdate => 1, expireDays => 60 )Montag, 28. Februar 2011
  38. 38. Teile der URL Domain www.test.de preVars en pagePath shop/products/ fixedPostVars create postVarSets article/123/color fileName detail.htmlMontag, 28. Februar 2011
  39. 39. pagePath pagePath => array( type => user, userFunc => EXT:realurl/ class.tx_realurl_advanced.php:&tx_realurl_advanced->main, spaceCharacter => -, languageGetVar => L, expireDays => 30 ),Montag, 28. Februar 2011
  40. 40. Teile der URL Domain www.test.de preVars en pagePath shop/products/ fixedPostVars create postVarSets article/123/color fileName detail.htmlMontag, 28. Februar 2011
  41. 41. postVarSets fixedPostVars postVarsSets => array ( 123 => array (...), _DEFAULT => array (...), ),Montag, 28. Februar 2011
  42. 42. postVarSets postVarsSets => array ( _DEFAULT => array ( news => array (...), calendar => array (...), shop => array (...), ), ),Montag, 28. Februar 2011
  43. 43. postVarSets postVarsSets => array ( _DEFAULT => array ( news => array ( list => array (...), single => array (...), archive => array (...), ), ), ),Montag, 28. Februar 2011
  44. 44. postVarSets => array(             _DEFAULT => array(                 // news archive parameters                 archive => array(                     array(                         GETvar => tx_ttnews[year] ,                         ),                     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,                             )                         ),Montag, 28. Februar 2011
  45. 45. Teile der URL Domain www.test.de preVars en pagePath shop/products/ fixedPostVars create postVarSets article/123/color fileName detail.htmlMontag, 28. Februar 2011
  46. 46. fileName fileName => array( defaultToHTMLsuffixOnPrev => 1, acceptHTMLsuffix => 1, index => array( rss.xml => array( keyValues => array( type => 100, ), ), .pdf => array( keyValues => array( type => 123, ), ), print.html => array( keyValues => array( type => 98, ), ), ), ),Montag, 28. Februar 2011

×