Ich versuche, meinen Webserver mit angepassten Fehlerdokumenten / Seiten zu versehen, aber mit PHP
code, ohne sie von der Seite wegzuleiten, die den Fehler ausgelöst hat.
Nehmen wir an, wir navigieren zu http://website.com/pages/1
und es wurde der Fehler 500 ausgelöst, mit Standard wäre die Seite nur eine leere weiße Seite mit dem Text " Error 500 (Internal Server Error)
"das würde ungefähr so aussehen:
Wie Sie oben sehen können, wurde es NICHT von der Seite umgeleitet, die den Fehler ausgelöst hat. Ich möchte, dass diese Seite "ein Teil der Website" aussieht, aber mit darin enthaltenem PHP-Inhalt.
Ich kann den PHP-Inhalt nicht in die Fehlerseiten über cPanel einfügen, indem ich die Seiten editiere, die Sie unten sehen:
> Wenn ich die obige Fehler-500-Seite bearbeiten würde, würde das Problem mit dem folgenden Inhalt sein, dass http://website.com/pages/1
dann wiederum zu http://website.com/500.shtml
umleiten würde umleiten zu http://website.com/500.php
Ich mache NICHT möchte, dass es überhaupt umleitet, sonst bedeutet es, die Seite zu aktualisieren, im Wesentlichen wird nur die Seite 500.php aktualisiert, anstatt die /pages/1
Das gleiche genaue Problem würde existieren, nur ohne dass es sich um 2-Ketten-Umleitungen handelt, stattdessen würde es nur eine Umleitung sein, die Folgendes in der .htaccess-Datei verwendet:
%Vor%Aktuelles Ergebnis: Umleitung zu /500.php
Erwartetes Ergebnis: Anzeige von 500.php in / auf Ссылка ohne Weiterleitung
Gibt es eine Möglichkeit, es über root zu tun (könnte ich meine Hosts dazu bringen, etwas zu tun, wenn ja was?)
Wie die anderen geantwortet haben, sollte das funktionieren:
%Vor%Wenn Sie keine vollständige URL angeben, wird nur die Seite angezeigt (eine interne Weiterleitung). Wenn Sie die vollständige URL angeben, wird eine Weiterleitung an diesen Client vorgenommen. Dies ist wie von Apache hier beschrieben: Ссылка
Beachten Sie, dass Sie ein ErrorDocument angeben, das auf eine Remote verweist URL (dh alles mit einer Methode wie http davor), Apache Der HTTP-Server sendet eine Weiterleitung an den Client, um ihm mitzuteilen, wohin finde das Dokument, auch wenn das Dokument am Ende gleich ist Server.
Die Tatsache, dass das obige nicht für Sie funktioniert, bedeutet eines von mehreren Dingen:
Können Sie diese Dinge überprüfen?
Könnte Ihnen auch helfen zu wissen, auf welcher Version von Apache Sie sind?
Haben Sie auch eine einfache 500.html-Datei ausprobiert, um zu sehen, ob dies ohne Umleitung funktioniert? Theoretisch wäre eine 500.php-Datei auch in Ordnung, aber es wäre interessant, sie einzugrenzen (und würde auch zeigen, ob diese Änderung in 500.html aufgenommen und verwendet wurde oder ob sie immer noch auf 500.php zeigt, was das vielleicht wäre zeige an, dass dies von einer anderen Konfiguration übernommen wurde als du denkst).
Wenn Sie so etwas in Ihrer .htaccess-Datei hinzufügen, sollte die Fehlerseite einfach ohne Umleitung angezeigt werden. Ich habe noch nie absolute Pfade verwendet, wie Sie es in Ihrem Beispiel für Fehlerseiten getan haben, also bin ich mir nicht sicher, welche Art von Verhalten es verursacht
%Vor%Tags und Links php apache .htaccess custom-error-pages cpanel