J'ai un fichier .htaccess
dans le répertoire racine et également un fichier 404.php. Le contenu de mon fichier .htaccess
est:
ErrorDocument 404 /404.php
Mais lorsque je suis en train de mal épeler mon URL, 404.php
ne s'ouvre pas. Au lieu de cela, je reçois le message suivant:
Pas trouvé
L'URL demandée /mywebsite/ites.php est introuvable sur ce serveur.
En outre, une erreur 404 Introuvable a été rencontrée lors de la tentative de utilisez un ErrorDocument pour gérer la demande.
Mais quand j'ai essayé ErrorDocument 404 google.com
, ça a fonctionné.
Je vais consolider mes commentaires à cette réponse:
Lors du réglage ...
ErrorDocument 404 /404.php
le chemin d'accès /404.php
peut ne pas être le chemin absolu de la racine de votre dossier htdocs, mais plutôt la racine de votre système de fichiers. Cela peut être, en fonction de votre configuration, par exemple. /home/htdocs/
ou ~
et ainsi de suite.
Il faut donc trouver le chemin absolu et le définir en conséquence.
Où se trouve réellement votre 404.php
par rapport à votre fichier .htaccess
? Pouvez-vous simplement l'exécuter comme une URL directe? Le fichier est-il lisible par le serveur? Ou est-ce dans un sous-répertoire imbriqué? Vous pouvez également essayer l'URL complète:
ErrorDocument 404 http://mygreat.server/404.php
Tous les détails dans la documentation officielle d'Apache ici .
Vous utilisez ErrorDocument like so:
ErrorDocument <3-digit-code> <action>
Vous avez trois types d'action qui sont déclenchés par ce que vous tapez:
L'action sera traitée comme:
Par exemple.
Texte personnalisé: ErrorDocument 404 "Oops! We can't find that pesky file. Sorry."
Chemin local: ErrorDocument 404 /local/path/to/404.php
URL externe: ErrorDocument 404 http://external_url.example.com/server_error.html
Vous avez choisi un fichier local mais vous ne liez probablement pas correctement du point de vue du serveur. Les chemins d'accès aux serveurs locaux ne sont pas ce que vous voyez dans votre URL et incluent souvent des éléments tels que ~/htdocs/www/domainname/
.
Le problème est probablement que votre chemin d'accès à 404.php
est incorrect et que votre serveur ne peut pas le trouver.