国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

nginx下支持PATH

2024-08-30 12:22:18
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了nginx下支持PATH_INFO的方法,結合實例形式詳細分析了nginx下使用PATH_INFO模式的具體方法與相關使用技巧,需要的朋友可以參考下

本文實例分析了nginx下支持PATH_INFO的方法。分享給大家供大家參考,具體如下:

要想讓nginx支持PATH_INFO,首先需要知道什么是pathinfo,為什么要用pathinfo?

pathinfo不是nginx的功能,pathinfo是php的功能。

php中有兩個pathinfo,一個是環境變量$_SERVER['PATH_INFO'];另一個是pathinfo函數,pathinfo() 函數以數組的形式返回文件路徑的信息;。

nginx能做的只是對$_SERVER['PATH_INFO]值的設置。

下面我們舉例說明比較直觀。先說php中兩種pathinfo的作用,再說如何讓nginx支持pathinfo。

php中的兩個pathinfo

php中的pathinfo()

pathinfo()函數可以對輸入的路徑進行判斷,以數組的形式返回文件路徑的信息,數組包含以下元素。

[dirname]  路徑的目錄
[basename] 帶后綴 文件名
[extension]  文件后綴
[filename]  不帶后綴文件名(需php5.2以上版本)

例如

<?phpprint_r(pathinfo("/nginx/test.txt"));?>

輸出

Array(  [dirname] => /nginx  [basename] => test.txt  [extension] => txt  [filename] => test)

php中的$_SERVER['PATH_INFO']

PHP中的全局變量$_SERVER['PATH_INFO'],PATH_INFO是一個CGI 1.1的標準,經常用來做為傳參載體。

被很多系統用來優化url路徑格式,最著名的如THINKPHP框架。

對于下面這個網址:

http://www.test.cn/index.php/test/my.html?c=index&m=search

我們可以得到 $_SERVER['PATH_INFO'] = '/test/my.html',而此時 $_SERVER['QUERY_STRING'] = 'c=index&m=search';

如果不借助高級方法,php中http://www.test.com/index.php?type=search 這樣的URL很常見,大多數人可能會覺得不太美觀而且對于搜索引擎也是非常不友好的(實際上有沒有影響未知),因為現在的搜索引擎已經很智能了,可以收入帶參數的后綴網頁,不過大家出于整潔的考慮還是想希望能夠重寫URL,

下面是一段解析利用PATH_INFO的進行重寫的非常簡單的代碼:

<?phpif(!isset($_SERVER['PATH_INFO'])) {  $pathinfo = 'default';} else {  $pathinfo = explode('/', $_SERVER['PATH_INFO']);}if(is_array($pathinfo) && !empty($pathinfo)) {  $page = $pathinfo[1];} else {  $page = 'default.php';}?>

有了以上認識我們就可以介入nginx對$_SERVER['PATH_INFO']支持的問題了。在這之前還要介紹一個php.ini中的配置參數cgi.fix_pathinfo,它是用來對設置cgi模式下為php是否提供絕對路徑信息或PATH_INFO信息。沒有這個參數之前PHP設置絕對路徑PATH_TRANSLATED的值為SCRIPT_FILENAME,沒有PATH_INFO值。設置這個參數為cgi.fix_pathinfo=1后,cgi設置完整的路徑信息PATH_TRANSLATED的值為SCRIPT_FILENAME,并且設置PATH_INFO信息;如果設為cgi.fix_pathinfo=0則只設置絕對路徑PATH_TRANSLATED的值為SCRIPT_FILENAME。cgi.fix_pathinfo的默認值是1。

nginx默認是不會設置PATH_INFO環境變量的的值,需要php使用cgi.fix_pathinfo=1來完成路徑信息的獲取,但同時會帶來安全隱患,需要把cgi.fix_pathinfo=0設置為0,這樣php就獲取不到PATH_INFO信息,那些依賴PATH_INFO進行URL美化的程序就失效了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭泽县| 宁远县| 中卫市| 桐梓县| 卓资县| 柏乡县| 垣曲县| 文水县| 望奎县| 泗洪县| 汉阴县| 科尔| 仪陇县| 分宜县| 鄢陵县| 塘沽区| 无棣县| 高阳县| 太谷县| 衡水市| 饶阳县| 墨竹工卡县| 泾川县| 龙门县| 荆门市| 新化县| 民县| 玉龙| 金乡县| 兴安盟| 冷水江市| 张掖市| 宁蒗| 增城市| 贵港市| 青河县| 芜湖县| 龙南县| 静海县| 安国市| 达拉特旗|