nginx rewrite für php mit Query-Strings

09.01.2017 | Nginx

Das Problem war daß die Config wie für Joomla nicht funktioniert hat, weil manchen URLs GET-Parameter übergeben werden sollten, die mittels $_GET ausgelesen werden müßten. mittels index.php?$request_u

Das Problem war daß die Config wie für Joomla nicht funktioniert hat, weil manchen URLs GET-Parameter übergeben werden sollten, die mittels $_GET ausgelesen werden müßten. mittels index.php?$request_uri schien zwar der ganze Request an index.php übergeben worden zu sein, allerdings konnte nichts mittels $_GET ausgelesen werden. Offensichtlich muß nginx dazu explizit $args an die index.php hängen.

dies:


location / {
try_files $uri $uri/ /index.php?$request_uri&$args;
}

führt dann leider zu dem unschönen Ergebnis, daß die URL mit einem '&' endet, wenn keine GET-Variablen existieren. das muß dann mittels trim korrigiert werden.

Da der Slash am Anfang des Query-Strings ebenfalls weg muß, sieht der Trim dann so aus:

trim($cmdName,'/&')

Bessere Lösung?

(Komplette ngxin-Konf für dieses Bsp. unter /etc/nginx/sites-available/knll)

Analyse

Entwurf

Development

Launch