Apache RewriteRule, - (tiret) comme substitution
Je vois souvent en PHP MVC applications Apache RewriteRule qui ressemble à ceci:
RewriteRule ^.*$ - [NC,L]
Docs sur Apache dire:
Un tiret indique qu'aucune substitution n'
doit être effectuée (le chemin d'accès existant
est passé à travers intacte). C'est
utilisé quand un drapeau (voir ci-dessous) doit
être appliquée sans modification du chemin d'accès.
Donc de ce que je comprends, vous pouvez l'utiliser pour transformer un chemin à l'aide d'un drapeau je.e [NC] pour les RewriteRules à suivre?
Quelqu'un pourrait-il m'expliquer ce dash RewriteRule un peu mieux?
- J'ai utilisé ce "ne rien faire" syntaxe pour prévenir du dossier parent .les règles htaccess à partir de l'exécution. Il a été utile avec Apache 2.2. Si vous utilisez Apache 2.4, vous pouvez simplement utiliser
RewriteOptions IgnoreInherit
pour éviter dossier parent de règles de réécriture.
Vous devez vous connecter pour publier un commentaire.
Voir cette réponse:
mod_rewrite: qu'est-ce RewriteRule faire?
Cela revient à dire "ne rien faire si la précédente RewriteConds match". La prochaine RewriteRule(s) au lieu de faire autre chose lors de la RewriteConds ne correspondent pas. Dans le cas de la poste je me suis lié à vous, la prochaine RewriteRule réécrit l'url, y compris "index.php".
Je sais que c'est un peu vieux, mais il dit en gros "Hé, je pourrais voulez utiliser la Réécriture, mais pour les url qui correspondent à ce RewriteCond(s), laissez-le être et de s'arrêter."
EX: