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.

È stato utile?

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"
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top