La réécriture comporte deux parties. Le premier spécifie que si le nom de fichier demandé est un fichier normal avec une taille supérieure à 0 (-s
), un lien symbolique (-l
) ou un répertoire (-d
), réécrire à nulle part, par ex. ne pas agir. [NC,L]
signifie que la règle n'est pas sensible à la casse et que la dernière règle correspond à ces conditions.
Toutes les autres demandes sont transmises à /vote/public/index.php
. Le but de cette réécriture est qu'un fichier réel existant puisse être extrait du serveur sans interférence. Sans la première règle, chaque demande de fichier (fichiers css et js, images, etc.) irait à index.php
ce qui gâcherait très mal les choses.
Habituellement, cela est écrit dans une déclaration, cependant. Vous pouvez annuler les conditions, puis les [OR]
statemens peut être retiré aussi:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /vote/public/index.php [NC,L]
Cela équivaut à la déclaration d'origine.
@Tatu Ulmanen: pouvez-vous expliquer ce que 'RewriteCond% {REQUEST_FILENAME} -f' signifierait? est-ce juste la "taille" que les options "-s" et "-f" diffèrent? Et aussi ce qui serait des fichiers réguliers (pas Binary?)? –