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']
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77600.html
標籤:PHP
