Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

Standardfehlerseite des Servers via PHP anzeigen

  Alt 29. Jun 2010, 16:55
Tachen (an die, welche nicht Fußblallabgelenkt oder Hitze-KO-abwesend sind)

Kann man via PHP irgendwie und vorallem einfach, die für einen bestimmten Ort (Verzeichnis) verwendete 404-Fehlerseite anzeigen, welche der Server anzeigen würde, falls dort auf eine nicht existierende Datei zugegriffen wird?

Aktuell geb ich eine Eigene aus, welche etwa der Standarsfehlerseite eine Apache ähnlich sieht.
Man kann aber z.B. im Apache und auch via .htaccess oder sonstwie eine andere Datei anzeigen lassen.

('ne Dateisperre über .htaccess ist an dieser Stelle aber noch nicht gefragt)

Am Anfang einer PHP-Datei könnte z.B. sowas sehn:
Code:
require_once(dirname(__FILE__) . '/Scripts/Config.php');
PHP_Include('Functions.php');
PHP_Include('MySQL.php');
PHP_Include('Template.php');
PHP_Include('Cache.php');
PHP_NoDirectCall();
Dort wird jetzt geprüft, ob dieses Script irgendwo eingebunden (include) oder direkt (über 'ne URL) aufgerufen wurde.
Code:
function PHP_NoDirectCall() {
  if (count(debug_backtrace()) > 1) return true;
  while (ob_get_level()) ob_end_clean();
  @header('Status: 404 Not Found');
  @header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
  echo "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n"
     . "</head><body>\n<h1>Not Found</h1>\n<p>The requested URL $_SERVER[REQUEST_URI] was not found on "
     . "this server.</p>\n<hr>\n$_SERVER[SERVER_SIGNATURE]\n</body></html>\n";
  exit;
}
Nja, und genau hier würde ich gerne die "allgemeine" Fehlerseite anzeigen. (so, als wenn es diese Datei also nicht gäbe)


PS: Ist nicht so wichtig (ich hoffe es geht auch so, wenn man Beides ausgibt),
aber falls jemand weiß, wie man "einfach" rausbekommt, ob PHP als CGI oder als Apache-Modul läuft, damit ich nur den richigen Header "Status: 404 Not Found" oder "HTTP/1.1 404 Not Found" senden kann ... wäre da erfräuft über eine Meldung


Irgendwie liefert Tante Google und Co. da einfach keine Lösungen.
$2B or not $2B

Geändert von himitsu (29. Jun 2010 um 17:05 Uhr)
  Mit Zitat antworten Zitat