Flag [L] qui n'interrompt pas le traitement .htaccess

WRInaute accro
Bonjour

J'ai un truc qui me parasite l'esprit concernant un .htaccess:

Dans un fichier, j'ai deux règles :

Code:
RewriteEngine On
RewriteRule ^admin/css/(.*)\.css$ applications/admin/css/$1.css [L]
RewriteRule ^(.*)$ controleur.php?application=public&action=erreur404 [L]

Lorsque j'appelle /admin/css/style.css, j'ai une erreur 404 provoquée par la deuxième règle.
Si je commente cette deuxième règle, ca fonctionne, j'ai bien accès au style demandé.

Je ne comprends pas pourquoi le flag [L] en fin de première règle n'arrête pas l'interprétation du .htaccess.

Si quelqu'un peut éclairer ma lanterne ... je le remercie par avance :)
 
WRInaute passionné
Je crois que L stoppe les regles suivantes mais pas le script en lui-meme donc en redirigeant vers applications/admin/css/$1.css les regles sont reinterpretees et c'est la 2eme regle qui est appliquée --> 404

donc tu dois y insere une condition!
essaye de mettre
Code:
RewriteCond $1 ^$
entre les 2 rewriterule et tiens moi au jus

NB : je viens de tester ce que je viens de te dire et ca fonctionne cela donne donc :
Code:
RewriteEngine On
RewriteRule ^admin/css/(.*)\.css$ applications/admin/css/$1.css [L]
RewriteCond $1 ^$
RewriteRule ^(.*)$ controleur.php?application=public&action=erreur404 [L]
 
WRInaute accro
Ok merci je tenterai demain; mais je ne fais pas de "redirection" vers l'admin; et ce que ne comprends pas, c'est que d'autres règles de traitement d'URL .html dans l'admin (que je n'ai pas mentionnées dans l'exemple) fonctionnent quant à elles très bien ?
 
WRInaute passionné
mais la seconde regle sera traitée a tous les coups puisque elle inclue toutes les possibilités...

lorsque tu appelles un css dans le dossier admin la page est redirigée vers application/admin/css puis le .htaccess s'exécute 1x de plus et redirige tout vers controleur.php
 
WRInaute accro
Ben non justement, aucune redirection n'a lieu et la seconde règle ne devrait pas être exécutée du fait du flag L?
 
WRInaute passionné
Code:
RewriteEngine On
RewriteRule ^admin/css/(.*)\.css$ applications/admin/css/$1.css [L]
RewriteRule ^(.*)$ controleur.php?application=public&action=erreur404

en enlevant le [L] sur la 2eme regle ca fonctionne :| il y a d'autres regles dessous car si oui la 2eme doit etre a la fin puisque c'est la plus large...
 
WRInaute accro
la dernière règle est bien sur en dernière position; mais je comprends de moins en moins. A moins que j'ai rien compris dans l'utilité du flag [L] ...
 
WRInaute passionné
je pense avoir la même définition du flag [L] que toi :\ j'avoue également que ton souci m'a un peu torturé l'esprit :)
j'ai cherché les différentes def sur la toile mais n'est rien vu de particulier
 
WRInaute accro
ouaip. en gros j'ai deux ou trois solutions pour que ca marche, mais j'ai toujours pas compris le pourquoi du comment du non fonctionnement de mes deux règles initiales ... merci en tout cas de t'être attardé sur ce pb et de t'être torturé l'esprit ;)
 
Discussions similaires
Haut