Dies ist eine alte Version des Dokuments!
<base href=„#“ />
in den Head-Bereich des HTML-Codes. Wird für verknüpfte Stylesheets, Bilder etc. benötigt, die einen relativen Pfad verwenden.config { baseURL = http://www.example.org/ prefixLocalAnchors = all simulateStaticDocuments = 0 tx_realurl_enable = 1 }
Die Datei wird in den Ordner typo3conf/
gelegt. Die Zeile mit rootpage_id
muss ggf. angepasst werden. Bei Verwendung mit news müssen die Seiten-UIDs für Einzelansicht(en) und ggf. Kategorien und Tags angepasst werden.
<?php $TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment'; $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array( 'fileName' => array( 'defaultToHTMLsuffixOnPrev' => 1, 'index' => array( 'print.html' => array( 'keyValues' => array( 'type' => 98, ), ), '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, ), ), ), ), 'pagePath' => array( 'type' => 'user', 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main', 'spaceCharacter' => '-', 'languageGetVar' => 'L', 'expireDays' => '3', 'rootpage_id' => 1, 'firstHitPathCache'=>1 ), 'init' => array( 'enableCHashCache' => TRUE, 'enableCHashCache' => 1, 'respectSimulateStaticURLs' => 0, 'enableUrlDecodeCache' => 1, 'enableUrlEncodeCache' => 1 ), 'preVars' => array( array( 'GETvar' => 'L', 'valueMap' => array( 'en' => '1', ), 'noMatch' => 'bypass', ), array( 'GETvar' => 'no_cache', 'valueMap' => array( 'nc' => 1, ), 'noMatch' => 'bypass', ), ), 'fixedPostVars' => array( 'newsDetailConfiguration' => array( array( 'GETvar' => 'tx_news_pi1[action]', 'valueMap' => array( 'detail' => '', ), 'noMatch' => 'bypass' ), array( 'GETvar' => 'tx_news_pi1[controller]', 'valueMap' => array( 'News' => '', ), 'noMatch' => 'bypass' ), array( 'GETvar' => 'tx_news_pi1[news]', 'lookUpTable' => array( 'table' => 'tx_news_domain_model_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' => 'l10n_parent', 'autoUpdate' => 1, 'expireDays' => 180, ) ) ), 'newsCategoryConfiguration' => array( array( 'GETvar' => 'tx_news_pi1[overwriteDemand][categories]', 'lookUpTable' => array( 'table' => 'sys_category', 'id_field' => 'uid', 'alias_field' => 'title', 'addWhereClause' => ' AND NOT deleted', 'useUniqueCache' => 1, 'useUniqueCache_conf' => array( 'strtolower' => 1, 'spaceCharacter' => '-' ) ) ) ), 'newsTagConfiguration' => array( array( 'GETvar' => 'tx_news_pi1[overwriteDemand][tags]', 'lookUpTable' => array( 'table' => 'tx_news_domain_model_tag', 'id_field' => 'uid', 'alias_field' => 'title', 'addWhereClause' => ' AND NOT deleted', 'useUniqueCache' => 1, 'useUniqueCache_conf' => array( 'strtolower' => 1, 'spaceCharacter' => '-' ) ) ) ), '17' => 'newsDetailConfiguration', // '18' => 'newsDetailConfiguration', // For additional detail pages, add their uid as well '21' => 'newsTagConfiguration', '4' => 'newsCategoryConfiguration', ), 'postVarSets' => array( '_DEFAULT' => array( 'controller' => array( array( 'GETvar' => 'tx_news_pi1[action]', 'noMatch' => 'bypass' ), array( 'GETvar' => 'tx_news_pi1[controller]', 'noMatch' => 'bypass' ) ), 'dateFilter' => array( array( 'GETvar' => 'tx_news_pi1[overwriteDemand][year]', ), array( 'GETvar' => 'tx_news_pi1[overwriteDemand][month]', ), ), 'page' => array( array( 'GETvar' => 'tx_news_pi1[@widget_0][currentPage]', ), ), ), ), ); ?>
<?php $TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment'; $TYPO3_CONF_VARS['EXTCONF']['realurl'] = array( '_DEFAULT' => array( 'init' => array( 'enableCHashCache' => 1, 'appendMissingSlash' => 'ifNotFile', 'enableUrlDecodeCache' => 1, 'enableUrlEncodeCache' => 1, 'postVarSet_failureMode' => '', ), 'redirects' => array(), 'preVars' => array( array( 'GETvar' => 'no_cache', 'valueMap' => array( 'nc' => 1, ), 'noMatch' => 'bypass', ), array( 'GETvar' => 'L', 'valueMap' => array( # 'de' => '0', 'en' => '1', ), 'valueDefault' => 'de', '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' => 1, 'firstHitPathCache' => 1, ), 'fixedPostVars' => array(), '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', ) ), ), // news pagebrowser 'browse' => array( array( 'GETvar' => 'tx_ttnews[pointer]', ), ), // news categories 'select_category' => array ( array( 'GETvar' => 'tx_ttnews[cat]', ), ), // news articles anMd searchwords 'article' => 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' => '-', ), ), ), array( 'GETvar' => 'tx_ttnews[backPid]', ), array( 'GETvar' => 'tx_ttnews[swords]', ), ), ), ), // configure filenames for different pagetypes 'fileName' => array( 'defaultToHTMLsuffixOnPrev' => 1, 'index' => array( 'print.html' => array( 'keyValues' => array( 'type' => 98, ), ), '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, ), ), ), ), ), ); ?>
.htaccess aus Dummy-Paket. Die zweite und letzte Zeile müssen angepasst werden.
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]
Quelle: http://www.oliver-thiele.de/cms-typo3/tutorials/realurl-tutorial.html
Wenn z.B. einige Seiten in Ordnern angelegt wurden, um die Menüausgabe zu beeinflussen (www.example.org/topmenu/impressum.html), kann man die Ordner aus dem RealURL-Pfad entfernen. In den Seiteneigenschaften wird dafür Exclude from speaking URL
aktiviert. Wurden die Seiten schon im Frontend aufgerufen, muss der RealURL-Cache gelöscht werden (siehe unten).
In der Ansicht WEB > Info können die im Frontend verwendeten Pfade eingesehen und verändert werden. Hierfür wird RealURL management und ID-to-path-mapping ausgewählt. Der Pfad kann wahlweise geändert oder gelöscht werden. Im letzteren Fall wird RealURL den Pfad selbständig neu anlegen. Falls dabei Probleme auftreten: TYPO3-Cache löschen, aus dem Backend abmelden oder die Seite(n) mit einem anderen Browser aufrufen.
Dies kann auch nötig werden, wenn man eine neue Seite erstellt, die denselben Namen trägt wie eine ältere, deaktivierte. Durch den RealURL-Cache wird im Frontend noch auf die alte Seite verwiesen, was zu Fehlern führt.
Einen manuellen Pfad stellt man am besten über die Seiteneigenschaften ein, wo nach Installation von RealURL das neue Feld Speaking URL path segment
existiert.
Falls statt der oben angegebenen die automatische Konfiguration aktiviert wurde, erstellt RealURL diese für den aktuellen Stand der TYPO3-Instanz. Werden neue Domains oder Sprachen hinzugefügt, wird diese Konfiguration nicht aktualisiert! Daher muss die Datei _autoconf.php
unter typo3conf/realurl/ gelöscht werden. Ist diese nicht mehr vorhanden, legt RealURL eine neue Konfiguration an.
'pagePath' => array( 'type' => 'user', 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main', 'spaceCharacter' => '-', 'languageGetVar' => 'L', 'expireDays' => 7, 'rootpage_id' => 1, # Seiten-IDs: 'excludePageIds' => '3,7,11', ),
Eine mehrsprachige Seite sollte dem Nutzer auch eine lokalisierte Fehlermeldung ausgeben, wenn mal eine Seite nicht gefunden werden kann. Mit eingerichtetem RealURL kann folgender Code verwendet werden. Ab TYPO3 CMS 6.x muss dieser in die AdditionalConfiguration.php
in typo3conf/
, in älteren Versionen kam er direkt in die localconf.php
.
Zudem werden die lokalisierten Inhalte auf einer Seite mit dem Namen „404“ direkt unterhalb der Root-Ebene eingetragen.
<?php if (!defined('TYPO3_MODE')) {die('Access denied.');} if (preg_match('/\/en\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) { $GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFound_handling'] = '/en/404/'; } else { $GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFound_handling'] = '/404/'; } ?>
Quelle: http://blog.exites.de/blog/2011/12/404-fehlerseite-bei-mehrsprachiger-typo3-seite-und-realurl/