2016-07-23 9 views
0

Ich suche nach einem if-Skript, um festzustellen, ob eine Seite in der .htaccess-Datei gefunden wurde! Es mag seltsam erscheinen, aber ich bin mir sicher, dass es irgendwie funktionieren kann.Schreibe alle Seiten, die nicht gefunden wurden, in eine andere URL und behalte reale Seiten, ohne einen 404 Fehler zu senden.

Ich zeige Ihnen, was mit Beispielen zu tun hat, in einem Ordner möchte ich zwei Dateien haben, Cheese.php und Pizza.php! Wenn sie sich in dem Ordner befinden, will ich es haben, wenn sie zu Cheese.php gehen, wird es sich normal verhalten, aber wenn sie auf einer Seite landen, die nicht im Ordner existiert, wird sie zu Pizza.php gehen, aber Pizza.php ist nicht eine 404-Fehlermeldung, aber etwas anderes von PHP behandelt.

Sie können nur sagen, verwenden Sie die 404 DocumentError, aber das einzige Problem ist, dass auf Internet Explorer es Pizza.php nicht bekommt aber zeigt seine eigene 404 Nachricht und auf den meisten anderen Browser zeigt es einen Fehler in der Konsole ...

Meine Anfrage scheint seltsam, aber hoffentlich ist dies möglich! Danke

Antwort

0

Ich denke, die Verwendung von ErrorDocument 404 /Pizza.php in .htaccess kann Ihr Problem lösen. Oder bitte klar, in welchem ​​Rahmen Sie verwenden?

0

Sie können nur sagen, die 404 DocumentError verwenden, aber das einzige Problem ist, dass im Internet Explorer nicht Pizza.php bekommt aber zeigt seine eigene 404-Nachricht und auf den meisten anderen Browsern zeigt es einen Fehler in der Konsole ...

der Grund, warum Sie die Fehlermeldung erhalten, dass der 404 Antwortcode vom Server festgelegt wird, wenn der Fehler Dokument gesendet wird. In .htaccess, tun:

ErrorDocument 404 /Pizza.php 

In Pizza.php, stellen Sie den Antwortcode in den frühen Skript, bevor Sie die Ausgabe von Inhalten an den Browser.

<?php 
    http_response_code(200); //tells browser that everything is OK 
    ... 

Weil Sie den Antwortcode selbst festgelegt haben, wird Ihr Server kein 404 gesetzt und der Browser nicht wissen, dass es irgendein Problem gibt.