---
title: "404 Fehlerseiten und Referer mitloggen"
url: "https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen"
source: "typo3.net"
tags: ["Extensions","Frage"]
created: "2008-07-11"
last_reply: "2008-08-26"
replies: 12
solved: false
page: 1
pages: 1
lang: "de"
---

# 404 Fehlerseiten und Referer mitloggen

Extensions · 12 Antworten · gestartet 2008-07-11

## Eröffnungsbeitrag

**einpraegsam.​net** · 2008-07-11 · [Beitrag #1](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/1)

Jemand eine Idee, wie man die Seiten herausfindet, die fälschlicherweise aufgerufen werden - eventuell auch noch den Referer hierzu!?

## Antworten

### [#2](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/2) · typo3tester · 2008-07-12

Ich mache das mit TYPO3-externem awstats.
Das müßte doch die awstats-Extension auch können, oder?
Gruß, Regina

### [#3](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/3) · einpraegsam.​net · 2008-07-12

Awstats wäre eine gute Idee

### [#4](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/4) · einpraegsam.​net · 2008-07-14

Awstats habe ich installiert und funktioniert auch schon mal prinzipiell.
Obwohl ich eine nicht-existierende Seite aufgerufen habe, erscheint nichts unter dem Punkt "HTTP Fehlercodes"

Der Headercode 404 wird auf jeden Fall ausgegeben

Jemand Erfahrungswerte hier?

### [#5](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/5) · daniz78 · 2008-07-28

Gibt es hier schon News?

Ich würde gerne die nicht-existierenden Seiten in einer Tabelle speichern um sie später umzuleiten!

Gruß, Daniz

### [#6](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/6) · daniz78 · 2008-07-28

Nicht...?
Na gut, hab ich´s also selbst gemacht!

kurze Beschreibung:

1. TYPO3 mitteilen das es eine USER_FUNCTION für das pageNotFound_handling gibt
2. In dieser den Referer und die aufzurufende Seite auslesen
3. Informationen in eine neue Tabelle (z.B. error_404) eintragen
4. cronjob einrichten der ein weiteres Skript für den Statusbericht aufruft
5. fehlerhafte Links in .htaccess umleiten

Wenn man konsequent die falschen URLs in der .htaccess umleitet, sollten nach einiger Zeit alle fehlerhaften Links verschwinden.

Für einen Relaunch einer Internetseite mit neuer Seitenstruktur sehr zu Empfehlen!

Erweiterungen der localconf.php

```typoscript
[FE][pageNotFound_handling] = USER_FUNCTION:fileadmin/develop/php/pageNotFoundHandling.php:user_pageNotFound->pageNotFound
[FE][pageNotFound_handling_statheader] = HTTP/1.0 404 Not Found
```

Aufbau der pageNotFoundHandling.php:

```php
<?php

require_once(PATH_tslib.'class.tslib_pibase.php');

class user_pageNotFound {
	function pageNotFound($param,$ref) {

		$host = $_SERVER['SERVER_NAME'];
		$requestedPage = $param['currentUrl'];
		$refererPage = $_SERVER['HTTP_REFERER'];

		$errorPage = "/404-seite.html"; // entsprechend anpassen
		$timestamp = time();

		$fields_values = array(
			'page' => $requestedPage,
			'referer' => $refererPage,
			'tstamp' => $timestamp
		);


		$res = $GLOBALS['TYPO3_DB']->exec_INSERTquery('error_404', $fields_values, FALSE);

		header("HTTP/1.0 404 Not Found");


		if($res) {
			header("Location: http://$host$errorPage");
		}
	}
}

?>
```

Aufbau der errorReport.php:

```php
<?php

require_once(PATH_tslib.'class.tslib_pibase.php');

function sendErrorMail() {
	$timestamp = time();
	$mailTo = 'adresse@domain.tld';

	$mailSubject = '404-Seite aufgerufen';
	$mailText = 'Die folgenden Fehlerseiten wurden aufgerufen:'."\n\n";
	$mailHeader = 'From: 404-Seite@domain.tld' . "\r\n";

	$where = 'tstamp < '.$timestamp.' AND checked = 0';

	# Get elements from DB
	$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*','error_404',$where,'','','');

	$count = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
	if($count > 0) {
		while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
			$mailText .= 'Ursprungsseite: '.$row['referer']."\t".'Zielseite: '.$row['page']."\n";
		}

		$mailText .= "\n".'Hinweis: Die Ursprungsseite kann nur ausgelesen werden, wenn auf einen Link geklickt wurde und der Benutzer die Option nicht deaktiviert hat.'."\n";

		$mailText .= "\n".'Sie können die falschen Links in der .htaccess eintragen um sie korrekt umzuleiten'."\n";
		$mailText .= 'Beispiel: Redirect permanent /falscheUrl.html http://www.domain.de/richtigeUrl.html'."\n";
		$mailText .= 'Wichtig: Die aufgerufene Seite muss unbedingt als absoluter Pfad angegeben werden!'."\n\n";

		if(@mail($mailTo, $mailSubject, $mailText, $mailHeader)) {

			echo 'mail gesendet...';

			$where = "checked = 0 AND tstamp < $timestamp ";
			$fields_values = array(
				'checked' => 1
			);

			// gesendete Einträge markieren
			$marked = $GLOBALS['TYPO3_DB']->exec_UPDATEquery(
				'error_404',
				$where,
				$fields_values,
				FALSE
			);

			if($marked) {
				echo 'und Eintr&auml;ge markiert';
			}

			// gesendete Einträge löschen
			// $GLOBALS['TYPO3_DB']->exec_DELETEquery('error_404','tstamp <'.$timestamp);
		}

	} else {
		echo 'keine neuen Eintr&auml;ge vorhanden';
	}
}

?>
```

Für Anregungen/Erweiterungen bin ich wie immer dankbar!

Gruß, Daniz

### [#7](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/7) · einpraegsam.​net · 2008-07-28

Hi Daniz, geniale Sache!

### [#8](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/8) · d.​walter · 2008-07-28

Klasse Sache!!

Wenn du jetzt noch eine mini-Extension daraus machst danken dir viele Leute dafür!

Daniel

### [#9](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/9) · daniz78 · 2008-07-28

Danke für den Ansporn!

Werde es diese Woche wohl nicht schaffen aber wenn Interesse besteht könnte ich die Mini-Extension nächste Woche in Angriff nehmen!

### [#10](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/10) · einpraegsam.​net · 2008-07-28

> **daniz78 schrieb:**
>
> aber wenn Interesse besteht

Ich denke, dass das bei vielen Benutzern gut ankommt

### [#11](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/11) · d.​walter · 2008-07-28

Da hast du vollkommen Recht einpraegsam ist auch meine Meinung!

Und daniz selbst wenn du es erst in drei Wochen schaffen solltest, ist es trotzdem klasse von dir das du der Community was von deiner Zeit und deinem Wissen "opferst".

Daniel

PS: Info an Mittwald: Ich hätte gern ein smiley mit Daumen hoch!!   :D

### [#12](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/12) · einpraegsam.​net · 2008-08-26

Habs mal in ähnlicher Form in einer Extension umgesetzt:
<http://typo3.org/extensions/repository/view/wt_404log/0.1.1/>

So lange das Manual noch nicht gerendert ist -
Das muss in die localconf.php damit die Extension läuft (wenn wt_404log eine locale Extension):

```php
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'USER_FUNCTION:typo3conf/ext/wt_404log/pi1/class.tx_wt404log_pi1.php:tx_wt404log_pi1->main';	//  Modified or inserted by TYPO3 Install Tool.
```

### [#13](https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen/13) · einpraegsam.​net · 2008-08-26

Kaum im TER schon verbessert:
Version 0.1.2 speichert ob der Benutzer von Extern kam und der Name des Spiders (falls Besucher ein Spider)

---

Quelle: „404 Fehlerseiten und Referer mitloggen“, typo3.net, https://www.typo3.net/d/79426-404-fehlerseiten-und-referer-mitloggen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
