Do Mod_rewrite reescreve invocar uma segunda corrida através das regras de reescrita?

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

  •  04-07-2019
  •  | 
  •  

Pergunta

Quando um RewriteRule é executado por Mod_rewrite vai todas as regras mod_rewrite ser executado novamente para o pedido recém-gerado? Especificamente no exemplo a seguir, vai esta causa um loop?

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

Solução

No seu caso, não vai, de qualquer modo fazer um loop. Você tem a chave "L" na, fixando essa regra especial como a última.

Além disso, você tem que forçar explicitamente a próxima iteração usando a "N" ou interruptores "ns", ou ele vai apenas mover através de seu arquivo de regras e parada com a última regra que partidas. De docs:

N (Próximo iteração)

Forças reescrita motor para modificar regras de destino e reinicie da regra verificando desde o início (tudo modificações são salvos). Número de reiniciado é limitada pelo valor especificado no RepeatLimit directiva. Se este número for excedido bandeira N serão simplesmente ignorados.

NS (próxima iteração da mesma regra)

Funciona como a bandeira N, mas é reiniciado regras de processamento da mesma regra (Isto é, forças repita da regra inscrição). Número máximo de um iterações de regras simples é dada pela directiva RepeatLimit. Mas uma série de não uma única repete regra não contam para o número global de repeties (isto repete limite para um número de iterações causados ??pela bandeira N é independente de um certo número de repetições causada por NS).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top