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

首頁(yè) > 學(xué)院 > 操作系統(tǒng) > 正文

nginx配置PATH_INFO模式

2024-06-28 14:32:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

我們可以使用PATH_INFO來(lái)代替Rewrite來(lái)實(shí)現(xiàn)偽靜態(tài)頁(yè)面, 另外不少php框架也使用PATH_INFO來(lái)作為路由載體

在Apache中, 當(dāng)不加配置的時(shí)候, 對(duì)于PHP腳本, Accept pathinfo是默認(rèn)接受的

PATH_INFO是服務(wù)器狀態(tài)中的一個(gè)參數(shù),通過$_SERVER['PATH_INFO']可以查看內(nèi)容

apache下配置如下

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*).html$ index.php/$1 [QSA,PT,L]

比如你訪問 http://127.0.0.1/pathinfo/index.html

 

但是nginx上有一些$_SERVER變量不支持 比如,$_server['http_x_forwarded_for'] 、$_SERVER['PATH_INFO']

這樣一來(lái)對(duì)于嚴(yán)重依賴PATH_INFO的框架,就很麻煩了

比如Thinkphp

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

給出了這么一種方案,這也只是折衷而已了

nginx中一般的配置為

location ~* /.php$ {           fastcgi_pass    unix:/dev/shm/php-fpm.socket;           fastcgi_index   index.php;           fastcgi_param  SCRipT_FILENAME $document_root$fastcgi_script_name;           include        fastcgi.conf;           include        fastcgi_params; }. 

php本身有一個(gè)cgi.fix_pathinfo配置選項(xiàng),不過由于安全問題已經(jīng)棄用了

 

看了看網(wǎng)上的資料,nginx中有一個(gè)fastcgi_param配置文件用來(lái)配置fastcgi_param

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#腳本文件請(qǐng)求的路徑  fastcgi_param  QUERY_STRING       $query_string; #請(qǐng)求的參數(shù);如?app=123  fastcgi_param  REQUEST_METHOD     $request_method; #請(qǐng)求的動(dòng)作(GET,POST)  fastcgi_param  CONTENT_TYPE       $content_type; #請(qǐng)求頭中的Content-Type字段  fastcgi_param  CONTENT_LENGTH     $content_length; #請(qǐng)求頭中的Content-length字段。    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; #腳本名稱   fastcgi_param  REQUEST_URI        $request_uri; #請(qǐng)求的地址不帶參數(shù)  fastcgi_param  DOCUMENT_URI       $document_uri; #與$uri相同。   fastcgi_param  DOCUMENT_ROOT      $document_root; #網(wǎng)站的根目錄。在server配置中root指令中指定的值   fastcgi_param  SERVER_PROTOCOL    $server_protocol; #請(qǐng)求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。      fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;#cgi 版本  fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;#nginx 版本號(hào),可修改、隱藏    fastcgi_param  REMOTE_ADDR        $remote_addr; #客戶端IP  fastcgi_param  REMOTE_PORT        $remote_port; #客戶端端口  fastcgi_param  SERVER_ADDR        $server_addr; #服務(wù)器IP地址  fastcgi_param  SERVER_PORT        $server_port; #服務(wù)器端口  fastcgi_param  SERVER_NAME        $server_name; #服務(wù)器名,域名在server配置中指定的server_name    #fastcgi_param  PATH_INFO           $path_info;#可自定義變量    # PHP only, required if PHP was built with --enable-force-cgi-redirect  #fastcgi_param  REDIRECT_STATUS    200;  fastcgi_param PHP_VALUE "auto_prepend_file=/data/header.php";

看到?jīng)]有fastcgi_param上的參數(shù)都是$_SERVER變量的,另外還可以來(lái)配置php.ini

 

所有結(jié)合nginx自身的語(yǔ)法就有了

 

新版本的nginx也可以使用fastcgi_split_path_info指令來(lái)設(shè)置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;  (...)}

 

對(duì)了,nginx+lua 也可以配置的

  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永年县| 泌阳县| 清水河县| 南涧| 宁化县| 开化县| 佛冈县| 谷城县| 礼泉县| 侯马市| 利津县| 竹溪县| 九龙坡区| 公主岭市| 九江市| 汉中市| 潼关县| 亚东县| 东兰县| 海安县| 蒲城县| 昌图县| 绵竹市| 松江区| 石屏县| 营口市| 汝阳县| 凭祥市| 安岳县| 改则县| 云安县| 碌曲县| 施甸县| 东安县| 栖霞市| 宜良县| 嵊州市| 泰来县| 赤城县| 泰来县| 海兴县|