nginx+thinkphp下解决不支持pathinfo模式_php技巧

nginx环境问题弄了两天,发现网上很多人的帖子要么复制粘贴,要么就是没有结贴,还自己写一句“哈哈,我自己解决了”之类的,这点我就鄙视这些发帖的同胞了,你说你问题问了,问题解决了也不给个解释。还在搜索的前几页,想没想过需要答案的人的感受呢。满心欢喜的去看答案,发现没有结贴。好吧,不多说,进入正题。

我这种方式是不需要将URL_Model改为rewrite/兼容的:

大约第43行,按照下面的对照自己的code进行修改,请注意细节的符号:

 location / {
      root  C:/Zend/workspaces; #//这是你自己项目的根目录。
      index index.html index.htm index.php;

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

    }

在php的配置中,将location ~ \.php$ 改为 location ~ \.php,再次强调,注意细节,这里去掉了$符号,我刚开始也是因为这个原因一直没能解决。

 location ~ \.php {
      root      C:/Zend/workspaces;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME C:/wnmp/php$fastcgi_script_name;
      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 $document_root$real_script_name;
      fastcgi_param SCRIPT_NAME $real_script_name;
      fastcgi_param PATH_INFO $path_info;
    }

如果仍未解决,在ThinkPHP入口文件index.php中加入配置define(‘_PHP_FILE_',$_SERVER['SCRIPT_NAME']);

期间大家可能会遇到500,404的问题,但记住一点,细心就行。只要按照我这个改,基本没什么问题。如果还有问题,欢迎留言咨询。

以上所述就是本文的全部内容了,希望大家能够喜欢。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索nginx
不支持pathinfo模式
nginx不支持pathinfo、nginx不支持thinkphp、thinkphp pathinfo、thinkphp5 pathinfo、thinkphp开启pathinfo,以便于您获取更多的相关知识。

时间: 2024-10-31 19:40:15

nginx+thinkphp下解决不支持pathinfo模式_php技巧的相关文章

配置Nginx环境实现支持pathinfo模式路径功能方法

由于需求的特殊性,我们很多CMS程序或者特定的环境需要用到支持pathinfo模式路径功能,比如在上午的时候一个网友使用的Typecho CMS程序在伪静态路径的时候需要支持类似http://www.laozuo.org/index.php/article_info/id/10这样的格式效果.在默认的Nginx配置环境中是没有支持pathinfo模式的,我们需要设置启动才可以.   第一.AMH面板环境   如果我们采用的AMH面板环境(Nginx),早期也需要手动设置,现在很简单,只需要在插件

Nginx隐藏index.php和Pathinfo模式配置例子_nginx

参照一下对应修改,重启nginx即可 复制代码 代码如下: server {        listen       80;        server_name www.leiyongbo.com www.leiyongbo.com;        root /usr/local/web;        index index.php;        error_page  400 /errpage/400.html;        error_page  403 /errpage/403.h

php cli模式学习(PHP命令行模式)_php技巧

php_cli模式简介 php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等) 也就是说,php不单可以写前台网页,它还可以用来写后台的程序. PHP的CLI shell脚本适用于所有的PHP优势,使创建要么支持脚本或系统甚至与GUI应用程序的服务端!--注:windows和linux下都支持php_cli模式 PHP-cli应用场景: 1.多线程应用 这

php 广告调用类代码(支持Flash调用)_php技巧

调用方式如下:其中DebugStr这个函数就是类似一个echo. 复制代码 代码如下: DebugStr('$Adv->getContentById($id); $id为广告编号, 仅调用一条,返回内容为字符串'); echo Adv::getContentById(35); DebugStr('$Adv->getContentByIdJS($id); $id为广告编号, 仅调用一条,返回内容为JS字符串'); echo Adv::getContentByIdJS(35); DebugStr(

php调用nginx的mod_zip模块打包ZIP文件_php技巧

php 本身有 zip 模块,可以生产 zip 文件.但是这个 zip 模块只能使用本地文件来打包.如果需要打包输出的文件来自网络,就得先保存临时文件.在文件数量多或者文件大的时候就很杯具.另外,由 php 来输出大的打包文件会占用 php 进程大量时间,影响并发能力. nginx 有一个第三方模块,mod_zip .同样可以输出 zip 包.和 X-Accel-Redirect 有点类似,只需要 php 输出相应文件的路径等信息,然后给一个特殊的响应头即可. nginx zip 模块使用的响应

解析使用ThinkPHP应该掌握的调试手段_php技巧

使用ThinkPHP应该掌握的调试手段经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身自带的调试方式不说,如果你正在用或者打算用ThinkPHP开发的话,那么下面一些和调试相关的方法你是应该要了解和掌握的: 1.在项目配置文件里面打开调试模式DEBUG_MODE,这样能够让你发现大部分的错误原因 .可能影响验证码的输出. 2.如果不想使用调试模式,可以单独开启页面Trace显示.发现

学习php设计模式 php实现抽象工厂模式_php技巧

抽象工厂模式(Abstact Factory)是一种常见的软件设计模式.该模式为一个产品族提供了统一的创建接口.当需要这个产品族的某一系列的时候,可以为此系列的产品族创建一个具体的工厂类.一.意图 抽象工厂模式提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类[GOF95]二.抽象工厂模式结构图   三.抽象工厂模式中主要角色抽象工厂(Abstract Factory)角色:它声明一个创建抽象产品对象的接口.通常以接口或抽象类实现,所有的具体工厂类必须实现这个接口或继承这个类.具

php设计模式 FlyWeight (享元模式)_php技巧

享元模式英文称为"Flyweight Pattern",我非常感谢将Flyweight Pattern翻译成享元模式的那位强人,因为这个词将这个模式使用的方式明白得表示了出来:如果翻译成为羽量级模式或者蝇量级模式等等,虽然可以含蓄的表现出使用此模式达到的目的,但是还是没有抓住此模式的关键. 享元模式的定义为:采用一个共享来避免大量拥有相同内容对象的开销.这种开销中最常见.直观的就是内存的损耗.享元模式以共享的方式高效的支持大量的细粒度对象. 在名字和定义中都体现出了共享这一个核心概念,

php设计模式 Command(命令模式)_php技巧

<?php /** * 命令模式 * * 将一个请求封装为一个对象从而使你可用不同的请求对客户进行参数化,对请求排除或记录请求日志,以及支持可取消的操作 */ interface Command { public function execute(); } class Invoker { private $_command = array(); public function setCommand($command) { $this->_command[] = $command; } publ