Domanda

Quando un RewriteRule viene eseguito da MOD_Rewrite, tutte le regole MOD_Rewrite verranno eseguite di nuovo per la richiesta appena generata? Nello specifico nell'esempio seguente, questo causerà un ciclo?

RewriteCond Host:  (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]
È stato utile?

Soluzione

Nel tuo caso, non farà comunque un ciclo. Hai il " L " accendere, fissando quella regola particolare come l'ultima.

Inoltre, devi forzare esplicitamente la successiva iterazione usando " N " o "NS" switch o si sposterà semplicemente attraverso il file della regola e si fermerà con l'ultima regola corrispondente. Dai documenti:

  

N (iterazione successiva)

     

Forza la modifica del motore di riscrittura   target della regola e regole di riavvio   controllando dall'inizio (tutti   le modifiche vengono salvate). Numero di   il riavvio è limitato dal valore   specificato in RepeatLimit   direttiva. Se questo numero viene superato   La bandiera N verrà semplicemente ignorata.

     

NS (prossima iterazione della stessa regola)

     

Funziona come la bandiera N ma si riavvia   elaborazione delle regole dalla stessa regola   (vale a dire forza la ripetizione della regola   applicazione). Numero massimo di a   iterazioni a singola regola sono fornite da   Direttiva RepeatLimit. Ma un certo numero di   una singola regola si ripete non conta   per il numero globale di ripetizioni (ad es.   limite di ripetizioni per un numero di   iterazioni causate da N flag è   indipendente da un numero di ripetizioni   causato da NS).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top