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

首頁 > 網站 > Nginx > 正文

nginx配置支持php的pathinfo模式配置方法

2024-08-30 12:28:50
字體:
來源:轉載
供稿:網友

nginx模式不支持pathinfo模式,類似info.php/hello形式的url會被提示找不到頁面。下面的通過正則找出實際文件路徑和pathinfo部分的方法,讓nginx支持pathinfo。

location ~ /.php$ {root      html;fastcgi_pass  127.0.0.1:9000;fastcgi_index index.php; ##通過設置模擬出pathinfoset $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 $document_root$real_script_name;fastcgi_param SCRIPT_NAME $real_script_name;fastcgi_param PATH_INFO $path_info; include    fastcgi_params;}

要點:

1.~ /.php 后面不能有$  以便能匹配所有 *.php/* 形式的url
2. 通過設置更改 SCRIPT_FILENAME

我在實際使用張將這段代碼融合到了fastcgi_params中。下面是我的nginx配置文件示例:
配置虛擬主機部分,支持pathinfo的nginx代碼如下:

## 在nginx.conf的server部分:

server {listen    8080;server_name localhost; location ~ /.php {include    fastcgi.conf;}}

##要點: /.php 后面沒有$,以便匹配所有 *.php/* 形式
##重點代碼見 fastcgi.conf 開頭部分

fastcgi.conf 代碼如下:

fastcgi_pass  127.0.0.1:9000;##fastcgi_index index.php;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 $document_root$real_script_name;fastcgi_param SCRIPT_NAME $real_script_name;fastcgi_param PATH_INFO $path_info;## 以上是支持pathinfo的重點部分fastcgi_param GATEWAY_INTERFACE CGI/1.1;fastcgi_param SERVER_SOFTWARE  nginx;fastcgi_param QUERY_STRING    $query_string;fastcgi_param REQUEST_METHOD   $request_method;fastcgi_param CONTENT_TYPE    $content_type;fastcgi_param CONTENT_LENGTH   $content_length;#fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;#fastcgi_param SCRIPT_NAME    $fastcgi_script_name;fastcgi_param REQUEST_URI    $request_uri;fastcgi_param DOCUMENT_URI    $document_uri;fastcgi_param DOCUMENT_ROOT   $document_root;fastcgi_param SERVER_PROTOCOL  $server_protocol;fastcgi_param REMOTE_ADDR    $remote_addr;fastcgi_param REMOTE_PORT    $remote_port;fastcgi_param SERVER_ADDR    $server_addr;fastcgi_param SERVER_PORT    $server_port;fastcgi_param SERVER_NAME    $server_name;# PHP only, required if PHP was built with --enable-force-cgi-redirect#fastcgi_param REDIRECT_STATUS  200;

自己的配置:

server{listen    80;server_name www.touchopenid.com;index index.html index.htm index.php;root /data0/htdocs/openid; 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;include    fastcgi_params;fastcgi_param PATH_INFO        $path_info;fastcgi_param SCRIPT_FILENAME     $document_root$script;fastcgi_param SCRIPT_NAME       $script;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 栾城县| 策勒县| 潮安县| 大城县| 扶风县| 兴业县| 安图县| 依兰县| 桐梓县| 兴隆县| 大同市| 清水县| 岚皋县| 工布江达县| 韶山市| 凤阳县| 孝昌县| 蚌埠市| 山西省| 南皮县| 黄骅市| 灵石县| 汉阴县| 吉隆县| 赤壁市| 阿坝县| 怀化市| 饶河县| 晋江市| 乐山市| 宁陵县| 定兴县| 宜兰县| 定边县| 平昌县| 贞丰县| 天台县| 通海县| 无棣县| 河源市| 来安县|