web-dev-qa-db-fra.com

500 Erreur interne du serveur lorsque vous essayez d'utiliser ErrorDocument pour gérer la demande

J'ai ce fichier .htaccess:

Options -Indexes
RewriteEngine on

ErrorDocument 404 /404.php

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]*)/?(.*)$ ./$1.php

RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)$ - [L,R=404]

Cependant, lorsque je vais à localhost/example.php, une erreur de 500 serveur interne est renvoyée.

Toute aide s'il vous plaît? Merci.

MODIFIER:

Le message d'erreur complet qui s'affiche est le suivant:

Not Found

The requested URL /example.php was not found on this server.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
10
user3130907

Vous obtiendrez probablement 500 en raison d'une erreur de boucle.

Exclure 404.php de la dernière règle en tant que:

ErrorDocument 404 /404.php

Options -Indexes -MultiViews
RewriteEngine on

RewriteCond %{THE_REQUEST} \.php [NC]
RewriteRule ^(?!404\.php)$ - [L,NC,R=404]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]+)/?(.*)$ ./$1.php [L]
5
anubhava

404.php est-il réellement défini à la racine de votre système de fichiers?

Je suppose que non.

Essayez quelque chose comme ../404.php

BTW: Avez-vous regardé dans vos fichiers journaux Apache? 

3
nl-x

Puisque vous voulez masquer l’extension .php dans vos pages, essayez de supprimer cette extension du fichier .htaccess en procédant comme suit:

Modification: ErrorDocument 404 /404.php en ErrorDocument 404/404

J'espère que cela t'aides.

JJ

0
user4483327