Les réécritures MOD_Rewrite appellent-elles une deuxième exécution à travers les règles de réécriture?

StackOverflow https://stackoverflow.com/questions/229231

  •  04-07-2019
  •  | 
  •  

Question

Quand une règle RewriteRule est exécutée par MOD_Rewrite, toutes les règles MOD_Rewrite seront-elles exécutées à nouveau pour la demande nouvellement générée? Dans l'exemple suivant, cela provoquera-t-il une boucle?

RewriteCond Host:  (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]
Était-ce utile?

La solution

Dans votre cas, cela ne fera en aucun cas une boucle. Vous avez le " L " allumez, fixant cette règle particulière comme la dernière.

De plus, vous devez forcer explicitement la prochaine itération en utilisant le "N". ou " NS " commutateurs, ou il suffit de parcourir votre fichier de règles et de vous arrêter avec la dernière règle correspondante. À partir de la documentation:

  

N (itération suivante)

     

Force le moteur de réécriture à modifier   la règle de la règle et les règles de redémarrage   vérifiant depuis le début (tous   les modifications sont sauvegardées). Nombre de   les redémarrages sont limités par la valeur   spécifié dans le RepeatLimit   directif. Si ce nombre est dépassé   Le drapeau N sera simplement ignoré.

     

NS (itération suivante de la même règle)

     

Fonctionne comme le drapeau N mais redémarre   traitement des règles à partir de la même règle   (c'est-à-dire oblige à répéter la règle   application). Nombre maximum d'un   itérations de règle unique est donnée par le   Directive RepeatLimit. Mais un certain nombre de   une seule règle répète ne compte pas   pour le nombre global de répétitions (c'est-à-dire   répétition limite pour un certain nombre de   itérations causées par le drapeau N est   indépendant d'un certain nombre de répétitions   causée par NS).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top