¿MOD_Rewrite reescribe invoca una segunda ejecución a través de las reglas de reescritura?

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

  •  04-07-2019
  •  | 
  •  

Pregunta

Cuando una RewriteRule es ejecutada por MOD_Rewrite, ¿se ejecutarán nuevamente todas las reglas de MOD_Rewrite para la solicitud recién generada? Específicamente en el siguiente ejemplo, ¿causará esto un bucle?

RewriteCond Host:  (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]
¿Fue útil?

Solución

En su caso, no hará en ningún caso un bucle. Tienes el " L " enciende, arreglando esa regla particular como la última.

Además, tienes que forzar explícitamente la siguiente iteración usando la " N " o " NS " cambia, o simplemente se moverá a través de su archivo de reglas y se detendrá con la última regla que coincida. De los documentos:

  

N (Próxima iteración)

     

Fuerza el motor de reescritura para modificar   reglas de destino y reinicio de la regla   comprobando desde el principio (todo   Se guardan las modificaciones). Número de   reinicios está limitado por el valor   especificado en el RepeatLimit   directiva. Si se supera este número   La bandera N simplemente será ignorada.

     

NS (Próxima iteración de la misma regla)

     

Funciona como la bandera N pero se reinicia   procesamiento de reglas de la misma regla   (es decir, fuerza de repetición de la regla   solicitud). Número máximo de un   iteraciones de una sola regla está dada por la   Directiva RepeatLimit. Pero una serie de   una sola regla se repite no cuenta   para el número global de repeticiones (es decir,   se repite el límite para una serie de   iteraciones causadas por la bandera N es   independiente de un número de repeticiones   causado por NS).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top