(Lighttpd) RegExp riscrivere le regole
Domanda
Sto scrivendo alcune delle mie regole per un paio di script PHP che sto scrivendo, anche se ho poca esperienza con regexp. Nota:. Piccola
In sostanza voglio passare tutti gli URL tranne pochi come argomenti a index.php, riscrittura maggior parte degli URL definiti come lumache in un database.
es: / admin, / config, / immagini / lib e / template esiste, ma non voglio essere riscritto. Ma tutto il resto, voglio passato come argomenti alla index.php.
Lo sto facendo attualmente con:
url.rewrite-once = (
"^/(.*)$" => "/index.php?$1"
)
Il che funziona perfettamente con le lumache di database, tuttavia reindirizza anche le cartelle elencate in precedenza. Questi contengono file necessari per accedere direttamente, ma non riesco a trovare da nessuna parte che descrive come escludere le stringhe da una partita.
Una volta che so come fare questo, riesco a capire il resto, ma essendo nuovo regexp non so da dove cominciare.
Qualsiasi aiuto sarebbe molto apprezzato.
Modifica Da allora ho dato questi un colpo:
"^/(index\.php|admin|config|images|lib|template)" => "$0",
Per quali FF riporta un reindirizzamento senza fine per quelle cartelle;
"^/(?!(admin|config|images|lib|template))(.*)$" => "$0"
Non corrisponde tutto, ma le cartelle;
"^/([^(admin|config|images|lib|template)]*)$" => "/index.php?$1"
Anche in questo caso, non riscrivere nulla;
"^/(.*)$" => "/index.php?$1"
riscrive tutto, comprese le cartelle che non voglio riscritto.
Soluzione
Mi sembra di aver ottenuto ciò che stavo cercando con la seguente espressione:
"^/(?!(index\.php|admin|config|images|lib|template)).*$" => "/index.php?$0"
Ho poi solo
trim( $_SERVER['argv'] ,"/")
in index.php per ottenere la lumaca.
Altri suggerimenti
Prova questo:
url.rewrite-once = (
"^/(index\.php|admin|config|images|lib|template)" => "$0",
"^/(.*)$" => "/index.php?$1"
)