web-dev-qa-db-fra.com

404 page ne montrant pas l'URL

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 .

3
user20525

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
5
Stephen Ostermiller

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.

3
TildalWave