Frage

ich einige meiner eigenen Regeln für ein paar PHP-Skripte zu schreiben ich schreibe, obwohl ich wenig Erfahrung mit regexp haben. . Hinweis: wenig

Grundsätzlich möchte ich alle URLs außer ein paar als Argumente zu übergeben auf index.php, die meisten URLs definiert als Butzen in einer Datenbank neu zu schreiben.

ie: / admin, / config, / images, / lib und / Vorlage vorhanden ist, aber ich will nicht neu geschrieben werden. Aber alles andere, ich will als Argumente an index.php übergeben.

Ich tue dies derzeit mit:

url.rewrite-once = (
    "^/(.*)$" => "/index.php?$1"
)

Welche schön mit der Datenbank Schnecken funktioniert, aber es leitet auch die Ordner oben aufgeführt ist. Diese enthalten Dateien benötigt, um direkt zugegriffen werden, aber ich kann nicht überall die beschreiben, wie Strings ausschließt von einem Spiel.

Sobald ich weiß, wie dies zu tun, kann ich den Rest herauszufinden, aber neu ist zu regexp Ich weiß nicht, wo ich anfangen soll.

Jede Hilfe wäre sehr geschätzt.

Bearbeiten: Ich habe diese seit gegeben ein Schuss:

"^/(index\.php|admin|config|images|lib|template)" => "$0",

Für welche FF meldet eine endlose Umleitung für diese Ordner;

"^/(?!(admin|config|images|lib|template))(.*)$" => "$0"

Hat passen nicht alles, aber die Ordner;

"^/([^(admin|config|images|lib|template)]*)$" => "/index.php?$1"

Auch hier nichts umschreiben;

"^/(.*)$" => "/index.php?$1"

Schreibt alles, einschließlich der Ordner, die ich will nicht neu geschrieben werden.

War es hilfreich?

Lösung

Ich scheine erreicht zu haben, was ich suchte mit dem folgenden Ausdruck:

"^/(?!(index\.php|admin|config|images|lib|template)).*$" => "/index.php?$0"

ich dann nur

trim( $_SERVER['argv'] ,"/")

in index.php die Schnecke zu erhalten.

Andere Tipps

Versuchen Sie folgendes:

url.rewrite-once = (
    "^/(index\.php|admin|config|images|lib|template)" => "$0",
    "^/(.*)$" => "/index.php?$1"
)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top