2017-03-01 10 views
1

Also ich versuche, Nginx zu konfigurieren, so dass Datei verschiedene Anfragen erhalten und verarbeiten konnte. Zum Beispiel zwei Arten von URLs: www.example.com/trips/some-slug/, und der andere wäre www.example.com/trips/?var=some-value. Ich habe Routing-Regel für eine Datei:Nginx umleiten je nach Anfrage

location ~ ^/trips/(.*)/?$ { 
    try_files $uri $uri/ /views/trips.php?slug=$1; 
} 

Dies sendet eine GET-Anfrage. Was ich abholen kann, aber ich kann die zweite Variante von Beispiel-URL nicht abholen, die gerade vom Server ignoriert wird.

Antwort

0

Sie könnten beide Arten von URI in einer benannten Stelle behandeln:

location /trips/ { 
    try_files $uri $uri/ @trips; 
} 
location @trips { 
    rewrite ^/trips/$ /views/trips.php last; 
    rewrite ^/trips/([^/]*)/?$ /views/trips.php?slug=$1 last; 
} 

Beachten Sie, dass das Beispiel verwendet eine Präfix Lage, die eine andere Rangfolge hat. Details siehe this document. Sie können natürlich weiterhin einen regulären Ausdruck Speicherort verwenden.

+0

Vielen Dank. Das hat so funktioniert, wie ich es brauche. – amberbrew