8791 sujets

Développement web côté serveur, CMS

Salut à tous,

j'ai une bizarrerie dans un fichier htaccess, j'ai paramétré mon erreur 404 :

ErrorDocument 404 /error404.php 


Qui marche parfaitement.

Et un rewriting dans un htaccess dans un dossier /fr/ pour que tous les fichiers dans ce dossier fr soient réécrits : toto réécrit en toto.php


RewriteEngine On
RewriteBase /fr/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]


ça marche très bien... SAUF ! Smiley lol

Si je déclenche une erreur 404 n'importe où ailleurs que dans le dossier fr, pas de souci, ça marche.
Si je déclenche une erreur 404 dans le dossier fr, je me prends une erreur 500.

Le log du serveur dit :

[Mon Mar 10 12:26:02 2014] [alert] [client 212.147.5.228] /home/httpd/vhosts/website.ch/httpdocs/.htaccess: ErrorDocument takes two arguments, Change responses for HTTP errors


Si je désactive le rewriting du dessus, l'erreur 404 fonctionne dans le dossier fr.

Une idée, je sèche complètement Smiley bawling .
Modifié par Nico3333fr (11 Mar 2014 - 11:58)
Comme toujours, je poste au bout de 2h de recherche, et je trouve 2mn après.

Si je mets : RewriteCond %{REQUEST_FILENAME}\.php -f


RewriteEngine On
RewriteBase /fr/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]


ça marche. Si qqu'un a une explication scientifique pourquoi ça marchait pas avant ? (erreur 500, toussa)

Au plaisir,
Nico