我们在安装lnmp一键安装的时候,一般都没有开启pathinfo访问模式

这种模式在比较多的框架中用到,比如国人的ThinkPHP,还比如C写的Yaf也用到,不支持就比较可惜了。

pathinfo的原理就是将index.php/xxxx/xxx类似的网址当做php来执行,并且需要将xxx/xxx写入到$_SERVER[‘PATH_INFO’]中

这个是lnmp.org(我装的就是这个,所以我以这个为例子)开出来的虚拟机的配置中的一段(vhost/***.conf),修改nginx配置文件也是这样修改location ~ .*\.(php|php5)?$

{try_files $uri =404;fastcgi_pass  unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fcgi.conf;

}

大家明显看到,location中的正则中,写了一个$,悲剧了,表示就此结束(?表示前面的php只匹配一次,这个只是随便提提)

最终,应该如此处理(location那行也修改了,因为我没有用到php5处理):if (!-e $request_filename)

{

rewrite ^\/([^\.]*)$ /index.php/$1 last;break;

}

location ~ \.php

{

try_files $uri =404;

fastcgi_pass  unix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fcgi.conf;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;

}

后面的部分处理我是参考的网络上搜索到的文档,我特意带注释版告诉大家,这是别人没有说的

这是别人没有说的location ~ \.php

{try_files $uri =404;fastcgi_pass  unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fcgi.conf;set $path_info "";#初始化一个变量

set $real_script_name $fastcgi_script_name;#初始化一个变量,并且获取到一个原始赋值

if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {#检测如果.php后面还存在/开始参数,将参数处理

set $real_script_name $1;#将第一个正则子串匹配到的赋值

set $path_info $2;#将第二个正则子串匹配到的赋值

}fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;#修改SCRIPT_FILENAME值

fastcgi_param SCRIPT_NAME $real_script_name;#修改SCRIPT_NAME值

fastcgi_param PATH_INFO $path_info;#修改PATH_INFO值

#上述三个赋值都是replace into的模式,这些值都是写在fcgi.conf中

}

php url模式在哪修改,如何在nginx环境中启用php的pathinfo URL模式[修正]相关推荐

  1. 如何在Safari Mac中启用暗黑模式?

    长时间在Safari浏览器上的在线时间会使您感到疲倦或使您的眼睛更加疲劳.而且,如果您在黑暗中或夜晚浏览互联网,则可能会伤害您的眼睛并可能导致黑眼圈.但是,如果您降低亮度并在Safari浏览器中启用暗 ...

  2. eclipse下如何打开被关闭的项目_如何在Windows 10中打开和关闭平板电脑模式

    默认情况下,将可转换计算机重新配置为平板电脑时,Windows 10会自动切换到平板电脑模式.如果你希望手动打开或关闭平板电脑模式,可以通过多种方法进行. 自动平板电脑模式在Windows 10中的工 ...

  3. Linux 中启用 Shell 脚本的调试模式

    shell 脚本调试系列 Linux 中启用 Shell 脚本的调试模式 在 Shell 脚本中执行语法检查调试模式 在 Shell 脚本中跟踪调试命令的执行 概述 脚本是存储在一个文件的一系列命令. ...

  4. (23/24) webpack实战技巧:如何在webpack环境中使用Json

    (23/24) webpack实战技巧:如何在webpack环境中使用Json 在webpack1或者webpack2版本中,若想在webpack环境中加载Json文件,则需要加载一个json-loa ...

  5. 如何在DOCKER环境中使用DB2

    如何在DOCKER环境中使用Db2 前言 此问的目的是帮助用户能够在docker的环境中学习Db2,前提条件的你的服务器可以访问互联网,否则无法下载Db2镜像.Docker环境中学习Db2的优势是省去 ...

  6. 区域气象-大气化学在线耦合模式(WRF/Chem)在大气环境中的应用

    [查看原文]区域气象-大气化学在线耦合模式(WRF/Chem)在大气环境中的应用 随着我国经济快速发展,我国面临着日益严重的大气污染问题.近年来,严重的大气污染问题已经明显影响国计民生,引起政府.学界 ...

  7. 计算机受控文件夹管理,小技巧分享:如何在Windows 10中启用和使用受控文件夹访问!...

    勒索软件非常猖獗,除了安装防病毒软件外,您还需要格外小心以保护Windows计算机的安全.尽管人们始终可以使用一种反勒索软件,但Windows 10现在通过在Windows Defender安全中心中 ...

  8. 禁用服务器网络协议怎么设置,如何在Windows操作系统中启用和禁用DHCP?

    原标题:如何在Windows操作系统中启用和禁用DHCP? 无论在公共场所还是家中,WiFi可以为您的计算机提供网络连接.我们出行或者参加会议时需要携带计算机.计算机操作系统具有可操作的DHCP,让大 ...

  9. vgpu服务器显卡性能,如何在vGPU环境中优化GPU性能

    大家好, 我收到了关于如何在vGPU环境中优化GPU性能的两个请求,并认为这将是我们的GRID论坛上的一个很好的线程,每个人都可以在他们如何微调vGPU环境方面添加他们的经验. 让我从一些公共资源开始 ...

最新文章

  1. HttpClient 教程 (二)
  2. Jsoup抓取网页数据完成一个简易的Android新闻APP
  3. re:Invent第二天:互联网客户在右传统客户在左,AWS向哪儿?
  4. java web服务 分层,java web分层之——三层架构
  5. 剑指Offer - 面试题62. 圆圈中最后剩下的数字(约瑟夫环 递推公式)
  6. modifying的博客
  7. 基于顺序存储结构的图书信息表的修改(C++)
  8. 【git系列】切换分支相关命令
  9. python机器视觉教材_基于Python的机器视觉实验教学平台设计
  10. Linux增加Qt模块,Qtcreator:linux系统下安装qtserialport模块
  11. 【poj1284-Primitive Roots】欧拉函数-奇素数的原根个数
  12. 算法笔记-二分查找和二分答案
  13. java毕业设计美发门店管理系统Mybatis+系统+数据库+调试部署
  14. DXGI高帧率屏幕录像软件源码解析(声音捕获,抓屏,ffmpeg录像,MP4录像,flv录像,麦克风采集)(第2篇声音采集部分)
  15. Hive之同比环比的计算
  16. 自动抢票之 12306 抢票篇
  17. CSS中的传统布局、多列布局、弹性伸缩布局及Emmet工具
  18. 概要设计与详细设计分别要做什么
  19. 十余省份高速人工通道实现支付宝收费 与ETC互为补充
  20. MacBook Air移动硬盘分区

热门文章

  1. scheduled sampling_seq2seq
  2. LeetCode简单题之删除某些元素后的数组均值
  3. 几何深度学习(Geometric Deep Learning)技术
  4. OpenCL通用异构开放环境
  5. TensorFlow简单线性回归
  6. 适用于CUDA GPU的Numba例子
  7. C++ #define(宏定义)的使用
  8. TypeError: sequence item 1: expected str instance, int found
  9. Linux系统中创建大文件,并作为文件系统使用
  10. express+ejs搭建的留言