原文地址:http://linuxguest.blog.51cto.com/195664/694319

nginx模式不支持pathinfo模式,类似info.php/hello形式的url会被提示找不到页面。下面的通过正则找出实际文件路径和pathinfo部分的方法,让nginx支持pathinfo。

nginx虚拟主机配置文件:

server {listen       80;server_name  localhost;root         /data/site;# 要实现使用指定程序处理 /a/b/c 路径请求,需要将请求地址改写为 /index.php/a/b/c;# 如果请求路径是物理存在的则不进行改写,防止将 /index.php 请求也改写了;if ( !-e $request_filename ) {rewrite ^/(.*)$ /index.php/$1 break;}# ~ \.php 后面不能有$,以便能匹配所有 *.php/* 形式的urllocation ~  \.php {include       fcgi_pathinfo.conf;fastcgi_pass  127.0.0.1:9000;}
}

在 fcgi_pathinfo.conf 中更改 SCRIPT_FILENAME:

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;

在PHP程序中获取path_info:

// 获取 PATH_INFO
$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
preg_replace('/\.\./', '', $path_info);$path_array = array();
if (preg_match_all('/([^\/]+)/', $path_info, $temp)) {$path_array = $temp[1];
}

转载于:https://www.cnblogs.com/edwardlost/archive/2013/03/22/2975987.html

转载:配置nginx支持pathinfo功能相关推荐

  1. 配置nginx,支持php的pathinfo路径模式

    nginx模式默认是不支持pathinfo模式的,类似index.php/index形式的url会被提示找不到页面.下面的通过正则找出实际文件路径和pathinfo部分的方法,让nginx支持path ...

  2. centos7.4下安装配置PHP服务(源码安装)并配置nginx支持php

    一.检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过. # yum remove php* -y 二.依赖包安装 Linux软件 ...

  3. centos下配置nginx支持php

    添加nginx 默认主页index.php vim /etc/nginx/conf.d/default.conf location / { root   /usr/share/nginx/html; ...

  4. 配置nginx支持php

    配置nginx支持php vi /usr/local/nginx/conf/nginx.conf      #编辑配置文件 user   www  www;          #首行user去掉注释, ...

  5. centos7.4配置nginx php,centos7.4下安装配置PHP服务(源码安装)并配置nginx支持php

    一.检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过. # yum remove php* -y 二.依赖包安装 Linux软件 ...

  6. linux cgi c环境配置,Linux下配置nginx支持.cgi | 系统运维

    说明: 操作系统:CentOS 6.x web环境:php+nginx+mysql nginx安装目录:/usr/local/nginx nginx配置文件:/usr/local/nginx/conf ...

  7. nginx支持php5,配置nginx支持php

    配置nginx支持php vi /usr/local/nginx/conf/nginx.conf      #编辑配置文件 user   www  www;          #首行user去掉注释, ...

  8. 配置修改Nginx支持 PATHINFO

    ThinkPHP支 持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可.在Apache下只需要开启mod_re ...

  9. nginx多入口配置隐藏.php,Nginx配置tp5支持pathinfo以及隐藏入口文件

    最近做微信公众号的开发,服务器上搭建的是LNMP环境,由于nginx默认是不支持pathinfo的,所以需要修改nginx.conf 注:我直接使用服务器IP进行微信token认证时总是失败,后来发现 ...

最新文章

  1. postfix+mysql 发件服务
  2. 【机器学习基础】范数与正则化
  3. 采样算法哪家强?一个针对主流采样算法的比较
  4. CORS解决WebApi跨域问题(转)
  5. Java基础总结--1
  6. 【python6】快递分拣小程序
  7. EUI插件服务器负载显示不兼容,EUI - 魔兽世界最贴心的插件
  8. [数据库] 一文搞懂case when所有使用场景
  9. kubernetes访问控制——Authentication认证、Authorization授权、服务账户的自动化
  10. 0x80073712_win10更新失败出现错误代码0x80073712如何解决
  11. 【转】几个ARX取CAD窗口句柄的函数
  12. 解决 plt.savefig 保存图像为全白或全黑图像方法
  13. [4]Python数据类型【1】
  14. 离散数学蕴含等值式前件为假命题为真的理解
  15. android判断webview加载完成,android webView判断是否加载完成的2种办法
  16. Maven 加入高德地图,类推百度地图
  17. 超级搜索everything项目
  18. 口碑订购会员营销网页无法打开,提示网页可能暂时无法连接
  19. SER 语音情感识别-论文笔记1
  20. 英语磁带与计算机磁带区别,小学英语教材配听力磁带 家长:谁还用复读机?...

热门文章

  1. 牛人是怎样用函数实现本地化测试的
  2. 英文论文-word summary
  3. 利用人脑神经突触进行网络模型剪枝
  4. vue实战之前期准备
  5. opencv教程大全
  6. 使用pytorch最关键的几个点
  7. 程序猿的日常——Java基础之equals与hashCode
  8. Centos6.5 安装配置docker
  9. Java服务器热部署的实现原理
  10. 进击的java(2)