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

首頁 > 網站 > Nginx > 正文

Nginx(PHP/fastcgi)的PATH_INFO的問題

2024-08-30 12:24:04
字體:
來源:轉載
供稿:網友
PATH_INFO是一個CGI 1.1的標準,經常用來做為傳參載體. 比如, 我們可以使用PATH_INFO來代替Rewrite來實現偽靜態頁面, 另外不少PHP框架也使用PATH_INFO來作為路由載體.
在Apache中, 當不加配置的時候, 對于PHP腳本, AcceptPathInfo是默認接受的, 也就是說:

如果在服務器在存在一個/laruence/index.php

那么, 對于如下請求,

/laruence/index.php/dummy
/laruence/dumm

Apache都接受, 都會認為是對info.php的訪問, 并會設置PATH_INFO為dummy

而對于Nginx下, 是不支持PATH INFO的, 也就是它不會默認設置PATH_INFO.

而因為默認的配置文件對PHP的支持只是很基礎的, 所以對于默認配置來說對于上面的訪問也會是404, 提示找不到文件出錯.

這對于一些使用PATH_INFO來傳遞關鍵信息的PHP框架來說(比如Kohana, Thinkphp), 簡直是致命的.

對于這個問題, 一般來說有倆種解決方法, 第一種就是使用rewrite, 但是這個方法的缺點也是很明顯的, 需要把PATH_INFO轉換成Query String. 此處就不說明這種方法了~

而, 第二種方法就是我今天要提的, 模擬PATH_INFO:

首先 , 我們知道在Nginx中, 是通過對文件名的擴展名匹配, 來決定是否要交給php cgi服務器去解釋的. 在nginx.conf中一般都有如下的默認配置段:

location ~ .php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;

所以,對于形如/laruence/info.php/pathinfo這樣的文件路徑, Nginx是不會正確的交給php cgi服務器的. 所以我們需要改寫這段配置為:

location ~ .php {//片段匹配
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;

現在, 腳本路徑已經交由PHP自己處理了. 那怎么增加PATH_INFO呢?

首先, 我們需要打開PHP中cgi.fix_pathinfo配置項, 打開這個配置項以后, PHP會去根據CGI規范來檢查SCRIPT_FILENAME中那部分是訪問腳本和PATH_INFO(ini配置解釋), 并根據SCRIPT_NAME來修改PATH_INFO(和PATH_TRANSLATED)為正確的值(其實也就是說明, PHP最初對CGI 1.1的支持并不到位)

然后, 就只要添加一個FASTCGI_PARAM項就好了:

location ~ .php {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;

現在試試吧…

btw: 當然, 上面的解決方法, 把對路徑的分析交給了PHP去處理, 網上也有朋友給出了另外一種配置方法, 這個方法是由Nginx來分析路徑(也就不需要fix_pathinfo):

location ~ /.php
{
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?/.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME /var/html/$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;

后記, 最近發現的一個安全漏洞(Nginx + PHP CGI的一個可能的安全漏洞)和這個配置有關系, 請大家務必在使用第二種配置的時候,關閉cgi.fix_pathinfo. 另外關于這個漏洞我個人認為這個和Nginx沒啥關系, 不屬于Nginx的漏洞. 是配置的問題, 現在到處都在說是Nginx的Bug, 不妥不妥.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
4438全国亚洲精品在线观看视频| 亚洲a∨日韩av高清在线观看| 久久精品一区中文字幕| 久久久精品在线观看| 成人动漫网站在线观看| 一道本无吗dⅴd在线播放一区| 日韩高清人体午夜| 欧美性猛交xxxx富婆弯腰| 欧美日韩视频免费播放| 国产精品久久久久久av福利软件| 久久久国产精品亚洲一区| 国产精品大陆在线观看| 欧美人与性动交a欧美精品| 久久人人爽人人爽人人片av高清| 亚洲欧美日本伦理| 91在线中文字幕| 日韩av日韩在线观看| 精品国产一区二区三区久久| 亚洲最大激情中文字幕| 久久久免费精品| 欧美福利视频在线| 亚洲天堂av在线播放| 日韩精品亚洲视频| 欧美一区二区三区精品电影| 国内伊人久久久久久网站视频| 中文字幕视频一区二区在线有码| 亚洲人成欧美中文字幕| 欧美性猛交丰臀xxxxx网站| 97国产一区二区精品久久呦| 欧美在线视频免费| 一本久久综合亚洲鲁鲁| 亚洲资源在线看| 不卡中文字幕av| 亚洲第一精品夜夜躁人人躁| 精品亚洲一区二区| 国产激情视频一区| 7777kkkk成人观看| 亚洲欧美日韩中文在线制服| 久久久久久这里只有精品| 日韩精品免费在线视频| 中文字幕精品在线视频| 亚洲欧美日韩中文在线| 国产精品日韩电影| 欧美性xxxx极品高清hd直播| 国产精品亚洲一区二区三区| 亚洲成人网在线观看| 日韩人体视频一二区| 中文日韩电影网站| 日韩小视频在线观看| 亚洲国产精品一区二区三区| 欧美日韩性生活视频| 国产一区二区三区丝袜| 欧美日韩一区二区在线播放| 精品国内产的精品视频在线观看| 亚洲91精品在线| 国产亚洲精品日韩| 亚洲成人三级在线| 久久精品国产亚洲精品| 欧美精品一区二区三区国产精品| 亚洲精品电影网在线观看| 久热精品视频在线免费观看| 亚洲女人天堂视频| 庆余年2免费日韩剧观看大牛| 中文字幕国产亚洲2019| 欧美大成色www永久网站婷| 91久久国产婷婷一区二区| 欧美激情视频三区| 91色p视频在线| 91老司机精品视频| 中文字幕日韩综合av| 亚洲男人av电影| 欧美精品在线网站| 国产91精品青草社区| 亚洲精品视频免费| 亚洲男女自偷自拍图片另类| 国产精品美女久久久久av超清| 亚洲免费精彩视频| 成人信息集中地欧美| 国产精品永久免费在线| 日韩风俗一区 二区| 欧美日韩亚洲视频| 777777777亚洲妇女| 日韩美女视频中文字幕| 欧美视频在线看| 国产亚洲视频在线观看| 国模视频一区二区| 久久国产精品影片| 黑人狂躁日本妞一区二区三区| 成人美女免费网站视频| 奇米一区二区三区四区久久| 久久亚洲精品一区| 国产精品露脸av在线| 在线成人免费网站| 国外成人在线播放| 亚洲一区二区自拍| 色播久久人人爽人人爽人人片视av| www.日韩.com| 久久久精品视频在线观看| 欧美日韩视频免费播放| 91久久久久久久久久久久久| 4k岛国日韩精品**专区| 中文字幕综合在线| 国产精品老女人精品视频| 欧美中文在线观看国产| 亚洲国产成人在线播放| 欧美激情精品久久久久久蜜臀| 欧美午夜激情在线| 日韩精品在线观看网站| 欧美高清视频一区二区| 日韩精品在线播放| 久久久久久国产| 成人免费视频网| 日韩在线免费高清视频| 亚洲裸体xxxx| 欧美精品生活片| 国产精品偷伦免费视频观看的| 国产精品私拍pans大尺度在线| 2020欧美日韩在线视频| 亚洲女人天堂色在线7777| 国产91ⅴ在线精品免费观看| 欧美在线精品免播放器视频| 中国日韩欧美久久久久久久久| 在线不卡国产精品| 中国日韩欧美久久久久久久久| 欧美黑人又粗大| 精品久久久香蕉免费精品视频| 中文字幕一区日韩电影| 国产成人一区三区| 日韩欧美成人免费视频| 亚洲精品一区二区在线| 大伊人狠狠躁夜夜躁av一区| 欧美日韩黄色大片| 国产成人精品av| 国产精品久久二区| 亚洲女人天堂成人av在线| 国产精品高清在线观看| 国产一区二区色| 国产精品扒开腿爽爽爽视频| 伊人久久精品视频| 欧美精品中文字幕一区| 亚洲女人初尝黑人巨大| 国产精品网站大全| 国产成人91久久精品| 欧美日韩一区二区在线| 亚洲欧美日韩中文视频| 亚洲男人天堂2024| 国产精品日韩电影| 久久久久久久久久婷婷| 国产999精品久久久影片官网| 日韩毛片在线看| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲欧美在线第一页| 亚洲国产美女精品久久久久∴| 欧美成年人视频| 久久久亚洲国产天美传媒修理工| 国产高清视频一区三区| 国精产品一区一区三区有限在线| 亚洲国产精品悠悠久久琪琪| 久久久久久免费精品| 欧美激情精品久久久久久蜜臀| 国产精品视频一区国模私拍| 亚洲成人网在线观看| 国产精品午夜一区二区欲梦| 亚洲电影免费观看高清完整版在线观看|