亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

nginx下支持PATH_INFO的方法實例詳解

2024-08-30 12:28:03
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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美化的程序就失效了。

1.可以通過rewrite方式代替php中的PATH_INFO

實例:thinkphp的pathinfo解決方案

設置URL_MODEL=2

location / {  if (!-e $request_filename){    rewrite ^/(.*)$ /index.php?s=/$1 last;  }}

2.nginx配置文件中設置PATH_INFO值

請求的網址是/abc/index.php/abc

PATH_INFO的值是/abc
SCRIPT_FILENAME的值是$doucment_root/abc/index.php
SCRIPT_NAME /abc/index.php

舊版本的nginx使用如下方式配置

location ~ .php($|/) {  set $script $uri;  set $path_info "";  if ($uri ~ "^(.+.php)(/.+)") {    set $script $1;    set $path_info $2;  }  fastcgi_pass 127.0.0.1:9000;  fastcgi_index index.php;  fastcgi_param SCRIPT_FILENAME $document_root$script;  fastcgi_param SCRIPT_NAME $script;  fastcgi_param PATH_INFO $path_info;}

新版本的nginx也可以使用fastcgi_split_path_info指令來設置PATH_INFO,舊的方式不再推薦使用,在location段添加如下配置。

location ~ ^.+/.php { (...) fastcgi_split_path_info ^((?U).+/.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; (...)}

最后可能有人要問為什么apache不會出現這個問題?

apache一般是以模塊的方式運行php,apache可以對$_SERVER['PATH_INFO']的值進行設置,不需要另外配置。

本文永久地址:http://blog.it985.com/7768.html
本文出自 IT985博客 ,轉載時請注明出處及相應鏈接。

希望本文所述對大家nginx服務器配置有所幫助。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人激情视频小说免费下载| 91最新在线免费观看| 日韩免费视频在线观看| 亚洲激情在线观看视频免费| 久久久久久国产精品三级玉女聊斋| 国产精品久久久久久久久久久不卡| 97国产精品人人爽人人做| 国产精品第一区| 久久久久久国产| 国产精品视频一| 国产精品爱久久久久久久| 国产欧美一区二区三区久久| 精品中文字幕在线| 精品国偷自产在线| 国产伦精品一区二区三区精品视频| 最近2019好看的中文字幕免费| 精品久久久久久中文字幕一区奶水| 国产97在线亚洲| 九九热精品视频| 日韩一区二区三区国产| 韩国视频理论视频久久| 欧美激情一区二区三区在线视频观看| 亚洲欧美国产精品专区久久| 欧美日韩国产页| 91日本视频在线| 国产亚洲成精品久久| 成人xvideos免费视频| 97超碰蝌蚪网人人做人人爽| 国产成+人+综合+亚洲欧美丁香花| 欧洲美女7788成人免费视频| 欧美最近摘花xxxx摘花| 亚洲男人7777| 欧美日韩精品在线观看| 久久久久久久久久亚洲| 亚洲欧美精品在线| 国产精品久久久久久久7电影| 国产精品爽爽爽爽爽爽在线观看| 亚洲第一免费网站| 亚洲性69xxxbbb| 国产精品视频自在线| 日日骚久久av| 亚洲一区二区三区sesese| 2018日韩中文字幕| 国产成人综合亚洲| 亚洲精品电影网站| 久久69精品久久久久久久电影好| 日韩av一区在线观看| 国产精品久久精品| 日韩av在线播放资源| 亚洲精品福利资源站| 国产视频久久久| 亚洲精品美女久久久久| 91在线视频九色| 亚洲国产成人爱av在线播放| 亚洲男女自偷自拍图片另类| 久热精品视频在线免费观看| 久久综合九色九九| 国产精品视频久久久久| 国产一区深夜福利| 欧美日韩午夜激情| 成人激情视频在线播放| 亚洲亚裔videos黑人hd| 韩国三级日本三级少妇99| 欧美激情综合色| 欧美日本啪啪无遮挡网站| 国产午夜精品麻豆| 91久久久久久久久久久久久| 日韩av在线影院| 欧美性高潮床叫视频| 久久免费视频网| 日韩av免费看网站| 日本高清久久天堂| 日韩成人av一区| 欧美亚洲国产成人精品| 亚洲护士老师的毛茸茸最新章节| 88xx成人精品| 欧美俄罗斯性视频| 亚洲精品国产精品国自产在线| 国产成人精品日本亚洲专区61| 九九精品视频在线观看| 亚洲专区在线视频| 欧美激情xxxx| 亚洲深夜福利视频| 欧美中文字幕视频在线观看| 欧美激情日韩图片| 国产成人综合久久| 亚洲天堂av在线免费| 亚洲天堂精品在线| 色av中文字幕一区| 国产精品扒开腿做爽爽爽男男| 亚洲尤物视频网| 精品视频久久久久久久| 久久久999国产精品| 日韩男女性生活视频| 国精产品一区一区三区有限在线| 欧美福利小视频| 国产一区二区香蕉| 欧美在线性爱视频| 国产mv久久久| 欧美日韩国产精品一区二区三区四区| 亚洲奶大毛多的老太婆| 久久精品国产清自在天天线| 日韩专区在线播放| 91麻豆国产语对白在线观看| 日韩最新中文字幕电影免费看| 2019日本中文字幕| 国产日产久久高清欧美一区| 亚洲欧美另类人妖| 奇米成人av国产一区二区三区| 欧美精品一区二区三区国产精品| 国产精品免费久久久久影院| 在线观看日韩av| 日韩av电影中文字幕| 色哟哟入口国产精品| 日韩成人在线观看| 色在人av网站天堂精品| 日韩av片免费在线观看| 国产精品视频99| 成人深夜直播免费观看| 久久国产视频网站| 1769国产精品| 77777少妇光屁股久久一区| 成人在线播放av| 国产精品久久久久国产a级| 琪琪亚洲精品午夜在线| 欧美精品videossex88| 欧美体内谢she精2性欧美| 亚洲精品自拍偷拍| 日韩精品在线观| 中文字幕成人在线| 亚洲高清色综合| 精品一区二区三区电影| 欧美一级大胆视频| 欧美激情xxxx性bbbb| 欧美国产乱视频| 亚洲综合中文字幕68页| 蜜月aⅴ免费一区二区三区| 亚洲人成绝费网站色www| 久久久天堂国产精品女人| 国产精品成av人在线视午夜片| 清纯唯美亚洲综合| 亚洲欧美国产va在线影院| 欧美性猛交99久久久久99按摩| 欧美亚洲激情在线| 国产精品福利在线观看网址| 美女扒开尿口让男人操亚洲视频网站| 成人啪啪免费看| 日本中文字幕不卡免费| 成人激情视频在线| 高跟丝袜一区二区三区| 91精品国产九九九久久久亚洲| 成人av色在线观看| 亚洲综合色av| 亚洲人成在线观看| 亚洲精品国产品国语在线| 国产精品扒开腿做| 色婷婷综合久久久久中文字幕1| 久久精彩免费视频| 尤物99国产成人精品视频| 日韩av有码在线| 欧美日韩国产综合新一区| 欧美超级乱淫片喷水| 欧美日韩亚洲高清| 久久亚洲精品毛片|