2013-06-25 16 views
13

Mentre ho potuto attivare la registrazione di riscrittura e la mensa con questa regola per capire cosa fa (se non altro), scommetto che qualcuno sa già. Ecco la regola da solo:RewriteRule^- [L] AKA RewriteRule accento circonflesso cruscotto L

RewriteRule^- [L] 

Qui è in context:

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

Credo che significa "Match Everything". Avrei pensato che "Match tutto" sarebbe un punto per rendere più evidente che non esiste un codice mancante, e che avrei regexp errore se il punto di inserimento era l'unica cosa in esso. Quindi vedo la possibilità esterna che significhi qualcos'altro.

risposta

16
  • ^ è un modo poco ortodosso di dire "mai soddisfatta", proprio come dici tu
  • - significa "nessuna azione"
  • [L] significa "ultima regola", cioè interrompere l'elaborazione RewriteRules dopo questo punto

presumo ci sono altre regole che seguono questo uno, perché questa combinazione di RewriteCond/RewriteRule dice che se la richiesta corrente è per un file o una directory esistente, mod_rewrite should ignorare ogni successiva RewriteRules.


Espresso in codice, questo sarebbe equivalente a:

do_rewrites(req) 
{ 
    if (is_file(req) || is_dir(req)) 
    return; 

    // other rules 
    ... 
}