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.

Était-ce utile?

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"
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top