Drupal erkennt ungültige Links nicht
am 20.12.2008 - 15:11 Uhr in
Hallo!
Meine Frage dreht sich um das Problem, das Drupals Fehler-404 Funktion („Seite nicht gefunden“) offensichtlich nicht wirklich gründlich arbeitet. Nun aber ins Detail:
Ich bin vor einigen Tagen mit einer Website, die sich auf einem eigenen PHP-Script befand, nach Drupal umgezogen. Die Domain, unter der die Website im Netz erreichbar ist, hat sich dabei nicht geändert. Dagegen die Urls der einzelnen Content-Seiten haben sich, Drupal-bedingt, geändert.
Das alte CMS der Website kannte kein „clean-urls“ und so befand sich für jede Seite der Website das bekannte „/index.php?act=view…“ in deren Urls.
In den Suchmaschinen al a Google und Co befinden sich massenhaft Verweise mit Urls, die dem oben genannten Schema entsprechen. Es sind also damit jede Menge Urls vorhanden, die auf nicht mehr vorhandene Seiten derselben Website und des alten CMS verweisen, da Drupal ganz andere Urls für seine Seiten erstellt.
Nun ging ich davon aus, dass jeder Klick auf einen dieser nun ungültigen Links zur Folge hat, dass der Besucher zwar auf die Website geleitet wird, aber Drupal anschließend eine 404-Fehlemeldung ausgibt. Genau das ist aber nicht der Fall. Denn stattdessen leitet Drupal jeden dieser Klicks auf die Startseite der Website um und die ungültige Url bleibt in der Adresszeile des Browsers unverändert stehen. So entsteht also der Eindruck als gäbe all die Seiten noch, oder als wäre dies zumindest regulärer Links auf die Startseite. Obwohl es sich um eine nun ungültige Url handelt, scheint das Drupal-CMS dies nicht zu erkennen oder zumindest zu ignorieren.
Weiß jemand, wie ich Drupal nun doch dazu bewegen kann, dass jeden Besuch über einen der veralteten Links, mit einer 404-Fehlermeldung quittiert?
Besten Dank und Grüße
Anoa
- Anmelden oder Registrieren um Kommentare zu schreiben
Eine 404-Fehlermeldung ist
am 25.12.2008 - 16:24 Uhr
Eine 404-Fehlermeldung ist nicht immer vom Benutzer als solche zu erkennen. Maßgeblich dafür ob eine 404-Fehlermeldung aufgetreten ist oder nicht ist alleine der HTTP-Statuscode, der im HTTP-Header der Antwort gesendet wurde. Das HTML, das dieser Antwort beiliegt, ist reine Höflichkeit gegenüber dem Benutzer und braucht nichts über 404 zu erwähnen.
Untersuche also als erstes, ob nicht vielleicht doch ein 404-Fehler aufgetreten ist. Verwende dazu das Firefox-Add-On Live HTTP Headers.
Alternativ kannst du auch unter
index.php?q=admin/logs/page-not-found
oderindex.php?q=admin/logs/watchdog
nachschauen ob 404-Fehler erzeugt werden.Schau auch unter
index.php?q=admin/settings/error-reporting
nach, wie Fehler von Drupal behandelt werden.Wenn Fehler wirklich auftreten, dann liegt es IMHO an der Webserver-Konfiguration, das die Startseite als Fehlerseite verwendet wird.
--
Wenn diese alten URLs
am 25.12.2008 - 16:34 Uhr
Wenn diese alten URLs wirklich nach index.php... waren, ist Drupals verhalten normal. Da er die Parameter für die index.php nicht kennt und dadurch schließlich auf die Startseite weiterleitet. Dh du musst selbst via mod_rewrite o.ä. dies auffangen.
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Hi traxer und
am 25.12.2008 - 17:07 Uhr
Hi traxer und Spartacus,
danke für eure Hilfe. Die Ursache für mein Problem hat tatsächlich mit dem eingeschobenen "/index.php" in der Url zu tun. Ich habe das bereits mit mehren Drupalsites getestet. Egal was man hinter "index.php" schreibt, man wird immer auf die Startseite der Site umgeleitet, die Url bleibt unverändert in der Browseradresszeile stehen, Drupal verzeichnet in seinen Logs keine Fehlermeldung und und auch das von traxer empfohlene Addon meldet kein 404.
Ok, dann werde ich mich dem Thema mod_rewrite annehmen; ich hatte gehofft, es ginge einfacher - wie weihnachtlich... ;-)
Besten Dank
Anoa