[PHP] fastcgi_split_path_info與傳遞PATH_INFO


PHP的很多框架里面都是通過獲取$_SERVER['PATH_INFO']處理路由 , 這個變量是通過nginx傳遞過來的 , 我們在nginx中經常見到下面兩句

fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;

這兩句是什么意思呢?

nginx默認獲取不到PATH_INFO的值,得通過fastcgi_split_path_info指定定義的正則表達式來獲取值

^(.+\.php)(/.*)$; 這個正則表達是有兩個小括號 , 也就是有兩個捕獲

第二個捕獲到的值會自動重新賦值給$fastcgi_path_info變量。

第一個捕獲的值會重新賦值給$fastcgi_script_name變量。

 

如果訪問 /index.php/test ,第二個捕獲的是/test $fastcgi_path_info就是/test,因此就會把/test傳遞給php的$_SERVER['PATH_INFO']

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM