Ma page 404 (/404.php
) fonctionne, elle envoie les en-têtes appropriés (404 - Introuvable).
Mais le problème, c’est de ne pas donner le lien qui l’a causé (par exemple, example.com/thisisnon-existant.htm
), mais plutôt de donner ma page 404 (example.com/404.php
).
Comment pourrais-je le faire réparer?
Tout ce que j'ai fait a été ajouté ce qui suit à . Htaccess :
ErrorDocument 404 http://example.com/404.php
Le code de ma page 404 est ici: http://Pastebin.com/G7mQ4aT1 .
Lorsque vous utilisez l'URL complète de ErrorDocument, Apache toujours lance une redirection vers cet emplacement. Vous souhaitez plutôt changer votre directive ErrorDocument en un chemin relatif.
ErrorDocument 404 /404.php
Stephen a répondu à votre question, mais une autre observation à propos de l'exemple de code que vous avez lié, vous voudrez peut-être supprimer ces lignes dans votre code PHP:
<?php
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
?>
Votre serveur Web a déjà répondu 404 lorsque ce document serait utilisé et vous fournissez simplement un document d'erreur plus agréable à lire. Il n'est pas nécessaire que ce document ajoute un en-tête de réponse indiquant l'erreur 404 comme vous l'avez fait, alors qu'il était déjà inclus dans la réponse du serveur à la suite d'une demande d'emplacement/document inexistant.