2012-12-22 60 views
8

我正在從Apache遷移到Nginx。Nginx:將所有不存在的請求重定向到index.php

我目前正在使用一個使用SERVER ['request_uri']來處理路由的自定義內容管理解決方案。

我想要做的是將所有不存在的文件&目錄請求重定向到/index.php,而不是更新客戶端的URI。但是,當文件存在時,我想要返回。

一個例子網址是: 本地主機/內容/頁/ 1 < - 應該填充$ _ SERVER [ 'REQUEST_URI']爲/內容/頁/ 1 或者 本地主機/公/腳本/ exists.js < - 應作爲實際文件返回。

回答

9

您需要添加一個location /塊或更新您當前location /塊在你的nginx 虛擬主機文件。

這將重定向所有請求到index.php如果文件或目錄未找到:您修改虛擬主機文件後

location/{ 
    try_files $uri $uri/ /index.php; 
} 

這正好你的服務器指令內,更多信息,請訪問http://wiki.nginx.org/HttpCoreModule

你需要重啓nginx的

注:的try_files服務器BL指令ocks添加了0.7.44

+0

順便說一句,我怎麼能在PHP中獲取重定向的文件名? – starikovs

相關問題