RealURL und externe Links

TYPO3 macht selbst aus externen Links zunächst interne Weiterleitungen. Über einen Hook von Real Url lässt sich dieses Verhalten elegant lösen.

Die Tatsache, dass keine direkten externen URLs sondern interne Weiterleitungen im Menü stehen, ist nicht nicht nur unschön, sondern auch SEO-technisch schlecht.

Statt www.test.de baut TYPO3 ganz normale Seiten z.B. www.nicolas-stey.de/test und leitet diese dann per 301 Header-Redirect auf die Zielseite. Somit profitiert die Zielseite auch leider nur bedingt von diesem Backlink.

Wie lösen wir nun das Problemchen?

Der Real Url Hook

Zunächst muss eine eigene Klasse gebaut werden. Diese macht nichts anderes als im Falle eines Externen Links die URL zu überschreiben.

Ich lege eine Datei fileadmin/hooks/class.tx_realurl_hooksHandler.php mit nachfolgendem Inhalt an:

<?php
class tx_realurl_hooksHandler{
	function user_encodeSpURL_externalURL ( $hookParams, $pObj )
	{
		$params = $hookParams['params'];
		$page = $params['args']['page'];
 
		# nur für externen links
		if($page['doktype'] == '3')
		{
			$hookParams['URL'] = $page['url'];
		}
	}
}
?>

Die Klasse bekannt machen

Anschließend müssen wir, um unseren Hook entsprechend zu registrieren, zwei Zeilen Code in die ext_localconf der Extension Real Url einfügen.

require_once($_SERVER['DOCUMENT_ROOT'].'fileadmin/hooks/class.tx_realurl_hooksHandler.php');
 
$TYPO3_CONF_VARS['EXTCONF']['realurl']['encodeSpURL_postProc'][]= 'tx_realurl_hooksHandler->user_encodeSpURL_externalURL';