Web Development
Oliver Thiele

RealURL Tutorial zur Konfiguration
Auf dieser Seite finden sie eine RealURL Konfiguration, die in vielen Fällen ohne sehr viele Anpassungen funktionieren sollte.

TypoScript Setup

TypoScript
  1. config {
  2. prefixLocalAnchors = all
  3. // simulateStaticDocuments = 0 Mit installierter Extension funktioniert RealURL nicht!
  4. baseURL = http://www.domain.tld/
  5. absRelPath = /
  6. tx_realurl_enable = 1
  7. }

In TypoScript wird mit diesen Zeilen RealUrl aktiviert und gegebenenfalls SimulateStaticDocuments deaktiviert.

Anzupassen wäre die baseURL mit der richtigen Domain. Bei aktuelleren TYPO3/RealURL Versionen sollte anstatt baseURL absRefPrefix verwendet werden.

prefixLocalAnchors sorgt dafür, dass Ankerpunkte auch bei Verwendung von RealURL auf einer Seite richtig angesprungen werden können.

typo3conf/realurl_conf.php

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

Einträge in die .htaccess-Datei

.htaccess

Apache
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 eingetragen wurde, in der Datei realurl_conf.php eingetragen! Hier muss der beschriebene PHP-Code noch mit "<?php" und "?>" umschlossen werden!

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.

© Copyright 2003-2016 Web Development Oliver Thiele. All rights reserved. - Diese Seite wurde am 27.05.2013 um 18:08 erstellt.
Letzte Änderung: 28.03.2016 10:53:06

oliver-thiele.de Trustcheck Seal