Nginx下實現(xiàn)pathinfo及ThinkPHP的URL模式
打開Nginx配置文件(不同版本的Nginx可能稍有不同),配置:
#去掉$是為了不匹配行末,即可以匹配.php/,以實現(xiàn)pathinfo
#如果不需要用到php后綴,也可以將其去掉
location ~ .php {
#原有代碼
#定義變量 $path_info ,用于存放pathinfo信息
set $path_info "";
#定義變量 $real_script_name,用于存放真實地址
set $real_script_name $fastcgi_script_name;
#如果地址與引號內(nèi)的正則表達式匹配
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
#將文件地址賦值給變量 $real_script_name
set $real_script_name $1;
#將文件地址后的參數(shù)賦值給變量 $path_info
set $path_info $2;
}
#配置fastcgi的一些參數(shù)
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
這樣,Nginx服務器就可以支持pathinfo了。但是如果要支持ThinkPHP的URL_MODE設置為2的模式,還需要配置rewrite規(guī)則。找到access_log語句,在其上方加上以下語句:
#如果請求既不是一個文件,也不是一個目錄,則執(zhí)行一下重寫規(guī)則
if (!-e $request_filename) {
#地址作為將參數(shù)rewrite到index.php上。
rewrite ^/(.*)$ /index.php/$1;
#若是子目錄則使用下面這句,將subdir改成目錄名稱即可。
#rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
}
保存配置文件,重啟Nginx服務,把ThinkPHP的URL_MODEL設置為2,如果能正常訪問,說明配置成功。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
利用nginx+lua+redis實現(xiàn)反向代理方法教程
這篇文章主要給大家介紹了利用nginx+lua+redis實現(xiàn)反向代理方法教程,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05
Nginx正則表達式相關的參數(shù)和規(guī)則介紹
這篇文章主要給大家介紹了關于Nginx正則表達式相關的參數(shù)和規(guī)則的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Nginx正則表達式具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-05-05
nginx中return和rewrite指令同時存在先執(zhí)行順序哪個
在Nginx配置中,當return和rewrite指令同時存在,其執(zhí)行順序取決于配置的具體場景,這篇文章主要介紹了nginx中return和rewrite指令同時存在先執(zhí)行順序哪個,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-09-09
Nginx+Lua腳本+Redis 實現(xiàn)自動封禁訪問頻率過高IP
本文主要介紹了如何使用OpenResty+Lua進行動態(tài)封禁IP的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-10-10
解決nginx報錯信息 client intended to send too large body: 1331696
這篇文章主要介紹了解決nginx報錯 client intended to send too large body: 1331696 bytes的相關資料,需要的朋友可以參考下2017-02-02

