在nginx中配置pathinfo模式支持thinkphp的URL重写
程序员文章站
2022-06-20 21:14:04
最近一个项目中使用了thinkphp做为开发框架,url上我们使用了pathinfo模式,但是nginx默认是不支持pathinfo的,需要进行手动配置才可以,于是我们按照...
最近一个项目中使用了thinkphp做为开发框架,url上我们使用了pathinfo模式,但是nginx默认是不支持pathinfo的,需要进行手动配置才可以,于是我们按照了以下方法进行了nginx的pathinfo支持配置:
修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加以下内容:
复制代码 代码如下:
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;
不过无论我们如何测试,都发现pathinfo模式总是不能正确运行,就算运行后,{:u}方法也总是出错,打印$_server后发现php_self总是不对。
但是依然pathinfo不能正确正常工作,于是我们确定是thinkphp的配置问题,发现其实是thinkphp的_php_file的问题,在入口文件index.php中加入配置define('_php_file_',$_server['script_name']);,问题解决。
如果$_server['script_name'] 路径也不对,请先替换为正确的文件路径。
推荐阅读
-
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
-
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
-
nginx支持codeigniter的pathinfo模式url重写配置写法示例
-
在nginx中配置pathinfo模式支持thinkphp的URL重写
-
ThinkPHP中的pathinfo模式和URL重写
-
配备Nginx支持ThinkPHP的URL重写和PATHINFO
-
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享_PHP
-
Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式
-
Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持
-
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享_PHP教程