Nginx
Nginx 友好的 URL 重寫規則
我最近從 Apache 遷移到 Nginx,性能無可挑剔。
該站點是一個下載伺服器(主要是),帶有自定義 PHP 腳本。
一些範例 URL 如下所示:
https://sub.example.com https://sub.example.com/index.php?dir=foo1/ https://sub.example.com/index.php?dir=foo2/ https://sub.example.com/index.php?dir=foo2/bar1/ https://sub.example.com/index.php?dir=foo2/bar2/
我想讓它們成為友好的 URL,因此上面的內容變為:
https://sub.example.com https://sub.example.com/foo1/ https://sub.example.com/foo2/ https://sub.example.com/foo2/bar1/ https://sub.example.com/foo2/bar2/
請注意我們的 PHP 腳本產生的斜杠。
該目錄可以使用或不使用該斜杠(手動鍵入 URL 時)訪問,並且需要在重寫後使用或不使用該斜杠進行訪問。關於 Nginx 的重寫配置有什麼想法嗎?
您可以使用try_files來改變文件系統上實際存在的文件以及您喜歡作為參數提供的 URI,例如您的 /foo1/。
location = / { try_files $uri /index.php?dir=$uri; }
在 PHP 中,這會產生:
echo $_GET['dir']; # /foo1/