当前位置:首页 > CMS教程 > Thinkphp > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-06 13:51:58 浏览: 评论:0 

这篇文章主要介绍了nginx+thinkphp下解决不支持pathinfo模式的相关资料,需要的朋友可以参考下。

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

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

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

  1. location / { 
  2.      root  C:/Zend/workspaces; #//这是你自己项目的根目录。 
  3.      index index.html index.htm index.php; 
  4.        
  5.      if (!-e $request_filename) { 
  6.      rewrite ^/(.*)$ /index.php/$1 break;   
  7.      break
  8.      } 
  9.        
  10.    } 

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

  1. location ~ \.php { 
  2.      root      C:/Zend/workspaces; 
  3.      fastcgi_pass  127.0.0.1:9000; 
  4.      fastcgi_index index.php; 
  5.      fastcgi_param SCRIPT_FILENAME C:/wnmp/php$fastcgi_script_name
  6.      include    fastcgi_params; 
  7.      set $path_info ""
  8.      set $real_script_name $fastcgi_script_name
  9.      if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { 
  10.      set $real_script_name $1
  11.      set $path_info $2
  12.      } 
  13.      fastcgi_param SCRIPT_FILENAME $document_root$real_script_name
  14.      fastcgi_param SCRIPT_NAME $real_script_name
  15.      fastcgi_param PATH_INFO $path_info;  
  16.    } 

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

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

Tags: nginx+thinkphp pathinfo

分享到: