mod_rewrite: qu'est-ce RewriteRule faire?
Compte tenu de ces conditions (je sais ce qu'ils veulent dire/faire):
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
Ce qui ne l' première règle? Qu'est-ce que cette solitude tableau de bord pour?
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
J'ai été en utilisant ce assez pour un certain temps maintenant, en combinaison avec le Zend Framework, mais je n'ai jamais vraiment eu ce que la première règle est exactement.
Vous devez vous connecter pour publier un commentaire.
La
RewriteCond
de la directive décrit simplement une condition supplémentaire pour unRewriteRule
de la directive. DoncRewriteCond
doivent toujours être associés à unRewriteRule
.Dans votre cas, les trois
RewriteCond
appartiennent probablement à la premièreRewriteRule
comme ceci:Maintenant cette règle est appliquée si le modèle de la
RewriteRule
correspond à l'URL de la requête (par le chemin du répertoire dépouillé avant) et si la condition est remplie.Dans ce cas, la condition est vrai que si lors de la cartographie de l'URL de la requête pour le système de fichiers, il correspond à un fichier existant avec la taille de fichier supérieure à 0 (
-s
), ou un lien symbolique (-l
) ou un répertoire (-d
). Si votre règle sera appliquée pour toute URL (^.*$
correspond à rien) qui peut être mappé à quelque chose d'existant dans votre système de fichiers. La substitution-
signifie simplement de ne pas changer quoi que ce soit. Et le NC (aucun cas, insensibles à la casse, inutile dans ce contexte) et L (dernière règle s'applique) sont drapeaux que de modifier le modèle, le remplacement ou l'exécution de la règle.