原文请查看:https://blog.youkuaiyun.com/woshihaiyong168/article/details/54973353
对于ThinkPHP的URL访问路劲如:http://域名/index.php/Index/BlogTest/read,原先的Nginx的是不支持的pathinfo路劲的,导致你在thinkPHP5上面测试的时候,输入相应的URL也不会提示模块名,控制器名或者方法名错误,而是出现一个404找不到的错误,那是因为Nginx无法解析这样的链接,下面讲讲如何配置:
首先找到 nginx.conf
1、只实现pathInfo
笔者的位置在 /usr/local/nginx/conf 下
vim /usr/local/nginx/conf/nginx.conf
-
location ~ \.php { #去掉$ -
root H:/PHPServer/WWW; 笔者这里默认是 html; -
fastcgi_pass 127.0.0.1:9000; -
fastcgi_index index.php; -
fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句 -
fastcgi_param PATH_INFO $fastcgi_path_info; #增加这一句 -
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; -
include fastcgi_params; -
}
这样就实现了nginx 支持pathInfo

2、实现完全支持tp5 隐藏index.php 以及支持 pathinfo 栗子:
-
server { -
listen 8082; -
server_name localhost; -
charset utf-8; -
access_log logs/host.access.log main; -
root /usr/local/nginx/html/thinkphp/public; -
index index.html index.htm index.php; -
location / { -
if (!-e $request_filename) { -
rewrite ^(.*)$ /index.php?s=$1 last; -
break; -
} -
} -
error_page 500 502 503 504 /50x.html; -
location = /50x.html { -
root html; -
} -
location ~ \.php$ { -
fastcgi_pass 127.0.0.1:9000; -
fastcgi_index index.php; -
include fastcgi_params; -
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 ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ { -
expires 30d; -
access_log off; -
} -
location ~ .*\.(js|css)?$ { -
expires 7d; -
access_log off; -
} -
}
pathInfo
本文介绍如何配置Nginx以支持ThinkPHP5的URL格式,包括实现pathInfo功能及隐藏index.php,通过具体示例展示了必要的配置步骤。

被折叠的 条评论
为什么被折叠?



