richtig status 404 senden
Jossi
- php
- suchmaschinen
- webserver
Es geht darum den richtigen header für google und co anzuzeigen. Es wird bei meiner Homepage eine Seite aufgerufen die es nicht gibt.
if($page=='okf') { ... }
else
{
header("Status: 404 Not Found");
include 'error.php';
}
Wäre das soweit ok, oder bin ich da auf dem Holzweg
Danke schon mal für das ansehen ;_) Jossi
Hallo Jossi,
Wäre das soweit ok, oder bin ich da auf dem Holzweg
Es gibt zwei Spezialfälle von Header-Aufrufen. Der erste ist ein Header, der mit "HTTP/" beginnt (ob Groß- oder Kleinschreibung ist nicht relevant) und zum Herausfinden des zu sendenden HTTP Statuscodes verwendet wird. Wenn Sie zum Beispiel Apache konfiguriert haben, um ein PHP Skript zum Bearbeiten von Anforderungen fehlender Dateien (mittels der ErrorDocument-Direktive) zu verwenden, möchten Sie bestimmt sicherstellen, dass Ihr Skript den passenden Statuscode generiert.
<?php header("HTTP/1.0 404 Not Found"); ?>
Du willst also header("HTTP/1.0 404 Not Found")
oder etwas ganz ähnliches schicken.
LG,
CK
Hallo Christian!
Du willst also
header("HTTP/1.0 404 Not Found")
oder etwas ganz ähnliches schicken.
Ja, wenn es die angewählte Seite nicht gibt, soll meine eigene Fehlermeldung angezeigt werden aber gleichzeitig für die Suchmaschinen auf eine Fehlermeldung. So wie ich das verstanden habe wäre das der Fehler 404.
So dacht ich wenn ich erst den header sende und dann meine Seite aufrufe, müsste es richtig sein.
Doch leider weiß ich nicht wie ich überprüfen kann ob eben diese header gesendet wurde.
Laut deinem Beispielhabe ich ihn schon falsch geschrieben. Also so..
{
header("HTTP/1.0 404 Not Found");
include 'error.php';
}
Hallo Jossi,
So dacht ich wenn ich erst den header sende und dann meine Seite aufrufe, müsste es richtig sein.
Du sendest den Header und sendest gleichzeitig (bzw. im gleichen Request) die Fehlerseite mit, damit sowohl Nutzer als auch ein Bot wie der von Google wissen, was Sache ist.
Doch leider weiß ich nicht wie ich überprüfen kann ob eben diese header gesendet wurde.
Doch, du kannst die Entwicklertools deines Browsers benutzen (anhand des Beispiels Firefox). Alternativ kannst cURL benutzen. Hier ein Beispiel:
julius@julius-NOTEBOOK:~$ curl -I https://selfhtml.org/seite-gibts-nicht
HTTP/1.1 404 Not Found
Date: Mon, 07 Mar 2016 11:44:36 GMT
Server: Apache
Last-Modified: Sat, 06 Feb 2016 19:31:35 GMT
ETag: "a114b-f55-52b1f04140850"
Accept-Ranges: bytes
Content-Length: 3925
Content-Type: text/html; charset=UTF-8
Gruß
Julius
Hallo Julius,
danke für den Tip mit den Entwicklertools desBrowsers anhand des Beispiels Firefox).
Mahlzeit,
<?php header("HTTP/1.0 404 Not Found"); ?>
Du willst also
header("HTTP/1.0 404 Not Found")
oder etwas ganz ähnliches schicken.
dann lieber etwas ganz ähnliches.
Pferde, Apotheke, ...
So long,
Martin
Hallo Martin,
Du willst also
header("HTTP/1.0 404 Not Found")
oder etwas ganz ähnliches schicken.dann lieber etwas ganz ähnliches.
Exakt deshalb habe ich den Halbsatz angefügt.
LG,
CK
Moin!
dann lieber etwas ganz ähnliches.
Exakt deshalb habe ich den Halbsatz angefügt.:
Einfacher: http_response_code(404)
;
Um die Angabe des Protokolls und den ergänzenden Standardtext (Hier: "NOT FOUND") kümmert sich PHP dann ganz von allein.
Jörg Reinholz