2017-03-01 120 views
1

所以我想配置nginx,以便文件可以獲取和處理不同的請求。 例如,兩種網址:www.example.com/trips/some-slug/,另一種是www.example.com/trips/?var=some-value。我有一個文件的路由規則:Nginx根據請求重新路由

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

這發送一個GET請求。我可以拿起,但我不能拿起示例url的第二個變體,它只是被服務器忽略。

回答

0

你可以在一個名爲位置處理兩種類型的URI:

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

注意,例如使用前綴位置,具有不同的優先順序。詳情請參閱this document。當然,您可以繼續使用正則表達式位置

+0

謝謝。這是我需要的方式。 – amberbrew