J'ai récemment ajouté ce petit bout de code à mon dossier .htaccess
:rewrite htaccess provoque erreur 500 au lieu de 404
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
Ok, je comprends ce qui se passe ici, je pense. Ce petit bout de code pour supprimer les extensions de fichier PHP provoque une boucle si le document n'est pas trouvé. Cette boucle provoque une erreur de 500 serveurs au lieu de la (correcte) 404. Malheureusement, j'ai très peu de compréhension de ce que font réellement ces réécritures, donc je ne sais pas comment le réécrire pour déclencher cette redirection seulement si le document existe.
J'ai fait quelques lectures et je ne suis pas sûr de ce qu'Apache considère comme un fichier "normal". Je veux dire que cela fonctionne, mais pourquoi la première ligne ne serait-elle pas -f
au lieu de !-f
? Est -u
le seul moyen d'accomplir cela?
Bingo. C'était ça. –
+1000 internets à vous monsieur, été à la recherche de la réponse à cette question pour une heure. –
fait ma journée! +1 – Fabian