Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:realurl

Dies ist eine alte Version des Dokuments!


RealURL

Einrichtung

  1. RealURL installieren
  2. TypoScript ergänzen
  3. Konfiguration anlegen (realurl_conf.php)
  4. .htaccess anpassen

TypoScript

  1. baseURL: Setzt ein <base href=„#“ /> in den Head-Bereich des HTML-Codes. Wird für verknüpfte Stylesheets, Bilder etc. benötigt, die einen relativen Pfad verwenden.
  2. prefixLocalAnchors: Fügt Ankern (Sprungmarken auf einer Seite) den vollen Pfad voran.
  3. simulateStaticDocuments: Muss deaktiviert werden, wenn RealURL verwendet wird.
  4. tx_realurl_enable: Aktiviert RealURL.
config {
	baseURL = http://www.example.org/
	prefixLocalAnchors = all
	simulateStaticDocuments = 0
	tx_realurl_enable = 1
}

realurl_conf.php

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.

RealURL + News System (news)

realurl_conf.php
<?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]',
                                ),
                        ),
                ),
        ),
);
?>

RealURL + News (tt_news)

realurl_conf.php
<?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,
					),
				),
			),
		),
	),
);
?>

.htacess

.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


Ordner aus Pfad entfernen

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).

Pfade anpassen: RealURL-Cache

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.

Automatische Konfiguration von RealURL

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.

Einzelne Seiten von RealURL ausschließen

'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',
),

Mehrsprachige 404-Seiten mit RealURL

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/

typo3/realurl.1445975789.txt.gz · Zuletzt geändert: 2015/12/03 19:29 (Externe Bearbeitung)