Zum Inhalt springen

Google Sitemap bestätigen / Fehlermeldungen Code 404

Erstellt am 5. September 2005 · 9 Antworten · letzte Antwort am 24. November 2005

Tags: Weiterleitungen & 404, SEO, Frage

pheine ·

Hallo!!!

Ich möchte Google Sitemaps benutzen. Dort kann man sich seit ein paar Tagen seine Sitemaps bestätigen lassen. Leider funktioniert das mit meinen Typo3 Webs nicht.

Fehlermeldung: Wir haben festgestellt, dass Ihre Fehlerseite 404 (Datei nicht gefunden) im Header den Statuscode 200 (OK) angibt. (Zur Fehlermeldung http://www.google.com/webmasters/sitemaps/docs/de/stats.html#verificationfileconfigerror)

Ursache für das Problem ist vermutlich, dass der Webserver mit mod_rewrite (Simulate Static) konfiguriert ist. Jegliche *.html Datei, die nicht gefunden wird, wird automatisch an die Startseite weitergeleitet. Die Startseite gibt natürlich keine Fehlermeldung (und keinen Code 404) aus.

Deshalb hier die konkrete Frage: Gibt es eine Möglichkeit, dass nicht existierende URLs mit einem 404 quittiert werden?

olebrumm ·

Moin moin,

gleiches Problem habe ich auch. Man kann im Installtool den Parameter [FE][pageNotFound_handling] auf 1 (True) stellen. Daraufhin wird bei nicht vorhandener Seite eine Fehlerseite eingeblendet. Leider funktioniert dieser Mechanismus nur bei den Standard-Requests der Form index.php?id=[number]. Sobald statt der numerischen ID der Alias verwendet wird bzw. mittels simulateStaticDocuments statische HTML-Seiten simuliert werden, greift diese Funktion nicht mehr (zumindest bei mir).

Ratlosigkeit ab!!!

Gruß
OleBrumm

tomila ·

Moin,

versucht es mal mit diesem Eintrag in der localconf:

$TYPO3_CONF_VARS["FE"]['pageNotFound_handling_statheader'] = 'HTTP/1.0 404 Not Found';

Hat bei mir geholfen.

Gruß
Tomila

olebrumm ·

Hallo,

das löst das Problem leider auch nicht. Das PageNotFound-Handling ist aktiv, greift allerdings - wie oben berichtet - nicht bei Benutzung des Alias in der URL (sowohl bei index.php?id=[alias] als auch bei [alias].html).

Trotzdem danke für die Antwort.

Gruß
OleBrumm

olebrumm ·

Moin moin,

da ich auch sonst nirgends auf die Lösung des Problems gestoßen bin, half nur noch das verzweifelte Herumwursteln im "Typo3-Quälcode".
Nach Stunden des Haare-Raufens konnte ich den Fehler finden.

System: 3.8.0
Datei: /tslib/class.tslib_fe.php
Zeile: 1148
Lösung:

Statt:
if ($aid) { $this->id=$aid }
den Code um else-Zweig ergänzen:
if ($aid) {
$this->id=$aid;
}
else {
$this->id=-1;
}

Gruß
OleBrumm

pheine ·

Super!!! Vielen Dank an OleBrumm! Die Lösung funktioniert!

Hier noch mal die Zusammenfassung:

1. In der localconf.php:

$TYPO3_CONF_VARS["FE"]["pageNotFound_handling"] = '1';
$TYPO3_CONF_VARS["FE"]['pageNotFound_handling_statheader'] = 'HTTP/1.0 404 Not Found';

2. Im Typo3 Quellcode in:

Datei: /tslib/class.tslib_fe.php
Funktion: checkAndSetAlias()
Zeile: 1290 (bei mir, bei OleBrumm in 1148-)
statt (original):

if ($aid) { $this->id=$aid }

die um das else erweiterte Zeile:

if ($aid) {$this->id=$aid;} else {$this->id=-1;}

-> Jetzt wird auch bei Verwendung von Simulate Static der richtige Statuscode 404 ausgegeben, wenn eine Seite nicht gefunden wird.

iconomie ·

Hallo!

Ich habe die Änderungen so vorgenommen, wie oben beschrieben. Damit habe ich die Fehlermeldung Code 200 statt 404 beseitigen können.

Nun habe ich aber das Problem, dass Google meine Kontrolldatei nicht finden kann.
Ich habe versucht, die Datei über den Browser aufzurufen und dort gibt Typo3 eine Fehlermeldung aus, dass die Seite nicht existiert.

Ich benutze SimulateStatic, könnte das daran liegen? Außerdem habe ich die Google Sitemaps Extension NICHT installiert, daran sollte es aber nicht liegen, oder?

Hat jemand ein ähnliches Problem, oder dafür eine Lösung?

mfG
iconomie

pheine ·

Check doch mal deine .htaccess. Vielleicht stimmen die RewriteRules nicht?

Bei mir sieht die Datei so aus, wenn ich SimulateStatic benutze:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule   ^[^/]*\.html$  index.php

Die Kontrolldatei hat bei mir noch keine Probleme gemacht. Einfach eine Datei mit dem Schlüssel (z.B. GOOGLEasdfvblablablade3sd.html) anlegen und in das Root-Verzeichnis (da wo auch die index.php liegt) kopieren. Die Datei kann ich auch im Browser aufrufen.

iconomie ·

Hi und vielen Dank für die schnelle Antwort!

In meiner .htaccess Datei fehlte die RewriteCondition! :o

Jetzt funktioniert es einwandfrei und ich kann die Datei auch über den Browser aufrufen!

Vielen Dank!

mfG
iconomie

db ·
olebrumm schrieb

da ich auch sonst nirgends auf die Lösung des Problems gestoßen bin, half nur noch das verzweifelte Herumwursteln im "Typo3-Quälcode".
Nach Stunden des Haare-Raufens konnte ich den Fehler finden.

Der Thread ist zwar schon etwas älter, genauer gesagt von letzter Woche, aber trotzdem möchte ich hier noch einige Hinweise geben, die (hoffentlich) den einen oder anderen davon abhalten, im Quelltext von Typo3 herumzufuhrwerken und sich Gott-weiß-welche Bugs einzubauen.

Diese Kontrolldatei von Google dient einzig und allein dazu, zu überprüfen, ob jemand Schreibrecht auf die angemeldete Domain hat. Wenn Google festgestellt hat, daß die Datei vorhanden ist, dann ist die Überprüfung abgeschlossen und sie kann sogar gelöscht werden. Sollte eine erneute Überprüfung notwendig sein, meldet Google sich wieder und fordert die Datei erneut an.

Man braucht also keinen Quellcode ändern, sondern nur kurz (für den Moment der Überpfüfung nämlich) die .htaccess-Datei umbenennen, sodaß sie unwirksam wird. Schon klappt die Überprüfung und man kann anschließend die .htaccess wieder aktivieren.

Es ist ja durchaus sinnvoll, daß bei einem 404-Fehler die Startseite aufgerufen wird und somit 200 (OK) zurückgibt. Von einer 404-Seite hat kein Benutzer wirklich etwas. Dieser Mechanismus, daß nämlich eine absichtlich falsch aufgerufene URL 404 zurückgeben muß, wurde von Google nur als Schutzmechanismus eingebaut um Manipulationen zu verhindern. Mit den Sitemaps und deren Funktion hat das absolut nichts zu tun.

Es gibt also absolut keinen Grund, am Quelltext etwas zu ändern und sich womöglich zusätzlich Bugs einzubauen.

Viele Grüße