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.
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]
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?
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