2009-03-23 6 views
0

Ich schreibe einige meiner eigenen Regeln für ein paar PHP-Skripte, die ich schreibe, obwohl ich wenig Erfahrung mit Regexp habe. Hinweis: wenig.(LigHTTPd) RegExp Rewrite Regeln

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

dh:/admin,/config,/images,/lib und/template existiert, aber ich möchte nicht neu geschrieben werden. Aber alles andere möchte ich als Argumente an index.php übergeben.

Ich tue dies derzeit mit:

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

, die schön mit der Datenbank Schnecken funktioniert, aber es leitet auch die oben aufgeführten Ordner. Diese enthalten Dateien, auf die direkt zugegriffen werden muss, aber ich kann nirgends finden, wie man Zeichenfolgen aus einer Übereinstimmung ausschließt.

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

Jede Hilfe würde sehr geschätzt werden.

Edit: ich da gegeben habe diese ein Schuss:

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

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

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

Passt nicht zu allem außer den Ordnern;

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

Erneut nichts umschreiben;

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

Überschreibt alles, einschließlich der Ordner, die ich nicht neu geschrieben werden soll.

Antwort

1

ich erreicht zu haben scheinen, was ich für den folgenden Ausdruck suchen:

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

ich dann nur

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

in index.php um die Schnecke zu bekommen.

0

Try this:

url.rewrite-once = (
    "^/(index\.php|admin|config|images|lib|template)" => "$0", 
    "^/(.*)$" => "/index.php?$1" 
) 
+0

Leider nicht, FF gibt mir eine endlose Umleitung Fehler, die auch, was ich bekam, wenn ich eine einfache versuchte: "/ template" => "/ template" –