Zum Inhalt springen

Sauber Weiterleitung aus externen Skript - SEO broken Link Tool

Erstellt am 21. Oktober 2009 · Noch keine Antworten

Tags: Weiterleitungen & 404, Frage

rlp_immigrant ·

Hallo zusammen,

ich hoffe ich bin hier mit meinem Problem im richtigen Forum gelandet. Falls nicht bitte verschieben.

Also: Da unsere Redaktion immer sehr aktiv ist haben wir das Problem das Inhalte relativ schnell verschwinden und viele externe Links ins leere laufen.

Daher habe ein kleines CronJob Skript gebaut welches sich die Crawling Fehler aus den Google Webmaster tools zieht und diese in einem StorageFolder als Datensätze ablegt. Diese Datensätze lassen sich dann im Backend von der Redaktion auf passende neue Inhalte verbinden.
Soweit ist alles fertig und funktioniert auch 1A.

Das Problem ist nun: Wie leite ich die eingehende Anfragen entsprechend um?
Im Prinzip auf kein Problem.
Ich könnte:
- ein Plugin erstellen und dieses auf einer Seite einrichten
- einen neuen Page Type definieren und diesen entsprechend abfragen
- ein externen PHP Skript auf der Seite einbinden
Diese Seite würde ich dann im Installtool als 404 Seite angeben. Das Problem ist nun das es dadurch 2 (!) Weiterleitungen geben würde. Einmal die zur der Seite mit dem Skript und dann die Weiterleitung zu der entsprechenden Seite. Und genau dies möchte ich unbedingt vermeiden.

Ich möchte am liebsten eine UserFunction erstellen und diese im Installtool zum handlen von 404er Anfragen definieren. Soweit auch kein Problem. Das Problem ist nun: Wie erzeuge ich einen entsprechenden sauberen "realurl" Link zwecks Weiterleitung in einem externen Script?

Ich habe zu diesem Thema auch diesen Beitrag (#81749) gefunden, der mich auch schon etwas weitergebracht hat.

Das Problem ist, dass ich das halbe FE initialsieren muss um die pi_getPageLink Funktion nutzen zu können. Im Moment scheitert es daran das die Systemextension "sv" anscheinend noch nicht geladen ist. Ich bekomme die Meldung

TYPO3 Fatal Error: Extension key "sv" was NOT loaded! (t3lib_extMgm::extPath)

. In $TYPO3_LOADED_EXT ist "sv" auch nicht aufgeführt.

Gibt es nicht irgendeine Möglichkeit diese Sache einfacher zu gestallten? Ich will ja "nur" einen Link auf eine sprechende URL erzeugen.

Ich habe auch schon überlegt die Tabelle tx_realurl_pathcache einfach auszulesen 😉 . Dann hätte ich ja den Pfad. Allerdings möchte ich in der Zukunft der Redaktion auch die Möglichkeit geben auf Datensätze z.B. tt_news oder DAM Inhalte zu verlinken - und so wirklich sauber wäre da ja nicht :o .

Hier noch das Weiterleitungs-Skript mit dem ich gerade rumexperimentiere.

<?php
define("PATH_site",getenv("DOCUMENT_ROOT"));
define("PATH_tslib", PATH_site."/typo3/sysext/cms/tslib/");
define("PATH_t3lib", PATH_site."/t3lib/");
define("PATH_typo3conf",PATH_site."/typo3conf/");
define('PATH_conf',realpath('../../../')."/");


require_once(PATH_conf."localconf.php");
require_once(PATH_t3lib.'class.t3lib_db.php');
require_once(PATH_t3lib.'class.t3lib_page.php');
require_once(PATH_t3lib.'class.t3lib_extmgm.php');
require_once(PATH_tslib.'class.tslib_content.php');
require_once(PATH_t3lib.'class.t3lib_div.php');
require_once(PATH_tslib.'class.tslib_pibase.php');
require_once(PATH_t3lib.'config_default.php');
require_once(PATH_tslib.'class.tslib_eidtools.php');

class weiterleitung extends tslib_pibase {

        function main(){

			$this->feUserObj = tslib_eidtools::initFeUser();
			$this->cObj = t3lib_div::makeInstance('tslib_cObj');
			$GLOBALS['TSFE']->sys_page = t3lib_div::makeInstance('t3lib_pageSelect');
			$GLOBALS['TSFE']->tmpl = t3lib_div::makeInstance('t3lib_TStemplate');
             return $this->pi_getPageLink(1);

        }
}
$output = t3lib_div::makeInstance('weiterleitung');
echo $output->main();



?>

Für alle Vorschläge, Ideen und Tipps bin ich sehr dankbar!

Viele Grüße
Alex

P.S. Sorry für den Typo in der Überschrift