[AIDE] ".php" ajouté à la fin des fichiers, étrange...

WRInaute discret
Bonjour à tous,
Je suis à la fin de développement de mon site, et il est installé sur un serveur dédié virtuel.
J'ai mis en place des règles de réécriture, tout fonctionne bien, les appels des pages avec ou sans variables, les erreurs 40X et 50X etc.

Seulement dans mes logs Apache j'ai des erreurs de ce type, ".php" est ajouté à la fin des fichiers (ex : MA_PAGE.js.php) qui n'existent pas et que j'appelle de façon automatique; cad, le site appel par défaut le " .css " et " .js " du même nom que la page appelée et si elle a une CSS ou JS existante il l'affiche.
Code:
[Wed Apr 21 11:49:28 2010] [error] [client XX.XX.XX.XX] script
'/home/web/MON_SITE.com/ftp/www/dev/scripts/MA_PAGE.js.php' not
found or unable to stat, referer:
http://MON_SERVEUR.org/MON_SITE.com/ftp/www/dev/MA_PAGE

Alors je ne sais pas si c'est Apache qui ajoute ".php" à la fin des fichiers non trouvé ou bien ma règle ?
Voici la portion de code qui me pose peut être ce problème, les autres déclarations sont pour des pages bien déterminées, là c'est d'une manière globale (par ex. les pages sans paramètres : http://www.___.com/ma_page) :

Avec cette règle, je veux que tous les .php, hormis les autres déclarés spécifiquement, soit converti :
ex: .../ma_page.php devient .../ma_page

Code:
RewriteCond $1 ^\.php$
RewriteRule ^(.*)$ $1\.php [L]


Merci pour vos lumières :roll:

Note : mes urls n'ont pas ".html" à la fin, dans mes réécritures
 
WRInaute passionné
ta règle ne vérifie pas que l'url appelée n'existe pas (fichier ou répertoire) et que le script .php existe :
Code:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*)$ $1\.php [L]
 
WRInaute passionné
et avec ca :
Code:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*)$ /$1\.php [L]
 
WRInaute discret
Même tarif :'(

Apache me retourne bien : File does not exist

Ca devient vraiment épuisant et soulant tout de meme de chercher un truc qui fonctionne bien en local et une fois sur serveur ça marche pas... :(
 
WRInaute passionné
les fichiers /aide.php et /astuces.php existent bien?

il n'y a pas d'autres règles de réécriture qui peuvent interférer?
 
WRInaute discret
Oui tous les fichiers existent bien :)

Avec ceci tout va bien, tout fonctionne SAUF que Apache me génère cette erreur :
Code:
# Page simple sans paramètre en URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.php$
RewriteRule ^(.*)$ $1\.php [L]

Erreur Apache :
Code:
[Fri Apr 23 08:41:06 2010] [error] [clientxxxxxxx] script '/home/web/SITE.com/ftp/www/dev/scripts/aide.js.php' not found or unable to stat, referer: http://SERVEUR.org/SITE.com/ftp/www/dev/aide

Il rajoute ".php" au fichier qu'il ne trouve pas !?

Par défaut mon site appel une CSS et JS du même nom que la page appelée, comme ça je fais une surcharge par rapport à la CSS et JS général; donc logique qu'il ne trouve pas mais pas logique qu'il m'affiche une erreur de la sorte.

Est-ce le http.conf peut y être pour quelque chose ?

merci
 
WRInaute passionné
et si tu mets cette condition qui est censé vérifier que le fichier .php existe :
Code:
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
 
WRInaute impliqué
forty a dit:
RewriteCond %{DOCUMENT_ROOT}/$1.php -f

[hs]
Merci forty, ça fait un moment que je cherchais le moyen de tester l'existance d'un autre fichier que celui appellé. :mrgreen:
J'ai pas testé mais peut-on faire "RewriteCond %{REQUEST_FILENAME}.php -f" ?
Bon, j'arrête de poluer le topic d'OlivierShop :wink:
[/hs]
 
WRInaute discret
Bon à priori ça pourrait venir de la config serveur avec ou à cause mod_autoindex :roll:

Je fouille....

Si vous avez une idée, je prends :wink:
 
WRInaute discret
Bonsoir

Bon tout est réglé avec ceci :

Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.php$
RewriteRule ^(.*)$ $1\.php [L]

Merci pour vos aides

Bon we
 
Discussions similaires
Haut