(Lighttpd) RegExp Règles Rewrite
Question
J'écris quelques-unes de mes propres règles pour quelques scripts PHP j'écris, même si j'ai peu d'expérience avec regexp. Note:. Peu
En fait, je veux passer toutes les URL, sauf quelques arguments pour que index.php, ré-écriture la plupart des URL définies comme les limaces dans une base de données.
par exemple: / admin, / config, / images, / lib et / modèle existe, mais je ne veux pas être réécrite. Mais tout le reste, je veux passer comme arguments à index.php.
Je le fais actuellement avec:
url.rewrite-once = (
"^/(.*)$" => "/index.php?$1"
)
Ce qui fonctionne à merveille avec les limaces de base de données, mais il redirige également les dossiers énumérés ci-dessus. Ceux-ci contiennent les fichiers nécessaires pour être directement accessibles, mais je ne peux pas trouver nulle part décrivant comment exclure les chaînes d'un match.
Une fois que je sais comment faire, je peux comprendre le reste, mais étant nouveau pour regexp Je ne sais pas où commencer.
Toute aide serait grandement appréciée.
Modifier: Je l'ai depuis donné un coup de feu ces:
"^/(index\.php|admin|config|images|lib|template)" => "$0",
Pour qui FF rapporte une redirection sans fin pour ces dossiers;
"^/(?!(admin|config|images|lib|template))(.*)$" => "$0"
Ne correspond pas tout, mais les dossiers;
"^/([^(admin|config|images|lib|template)]*)$" => "/index.php?$1"
Encore une fois, ne réécrit rien;
"^/(.*)$" => "/index.php?$1"
réécritures tout, y compris les dossiers que je ne veux pas réécrites.
La solution
Il me semble avoir accompli ce que je cherchais avec l'expression suivante:
"^/(?!(index\.php|admin|config|images|lib|template)).*$" => "/index.php?$0"
Je puis juste
trim( $_SERVER['argv'] ,"/")
index.php pour obtenir la limace.
Autres conseils
Essayez ceci:
url.rewrite-once = (
"^/(index\.php|admin|config|images|lib|template)" => "$0",
"^/(.*)$" => "/index.php?$1"
)