nginx+thinkphp下解决不支持pathinfo模式以及存在的各种404,500问题,nginxpathinfonginx环境问题弄了两天,发现网上很多人的帖子要么复制粘贴,要么就是没有结贴,还自己写一句“哈哈,我自己解决了”之类的,这点我就鄙视这些发帖的同胞了,你说你问题问了,问题解决了也不给个解释。还在搜索的前几页,想没想过需要答案的人的感受呢。满心欢喜的去看答案,发现没有结贴。好吧,不多说,进入正题。
我这种方式是不需要将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的问题,但记住一点,细心就行。只要按照我这个改,基本没什么问题。如果还有问题,欢迎留言咨询。
解决方法来源参考:http://www.codesth.com/%e4%b8%8d%e7%94%a8rewrite%e5%85%bc%e5%ae%b9%ef%bc%8c%e8%a7%a3%e5%86%b3nginx%e4%b8%8d%e6%94%af%e6%8c%81thinkphp-pathinfo%e6%a8%a1%e5%bc%8f/
http://www.bkjia.com/phpjc/1024648.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1024648.htmltecharticlenginx+thinkphp下解决不支持pathinfo模式以及存在的各种404,500问题,nginxpathinfo nginx环境问题弄了两天,发现网上很多人的帖子要么复制粘贴,要...