关于ThinkPHP5配置Nginx实现兼容pathinfo模式访问

下面由thinkphp教程栏目给大家介绍ThinkPHP5配置Nginx实现兼容pathinfo模式访问,希望对需要的朋友有所帮助!

创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为根河企业提供专业的成都网站设计、成都做网站、外贸网站建设根河网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

ThinkPHP项目,当使用Apache服务器时,Apache服务器本身支持pathinfo模式,ThinkPHP的4种访问模式都没问题;当使用Nginx时,碰到问题,必须使用兼容模式访问。
查找很多文档,归纳原因及解决方案如下:

原因:低版本的Nginx不支持pathinfo模式;高版本的Nginx(大约0.7以后)支持,但默认没有开启。
解决解决方案:

1、开启Nginx的pathinfo模式:
在站点配置文件中找到 location ~ \\.php$ {...} 那部分,把那个 $ 符号删除,然后在{}中添加以下代码:

fastcgi_split_path_info         ^(.+\\.php)(.*)$;
    fastcgi_param  PATH_INFO        $fastcgi_path_info;  fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;

保存,重启。这时Nginx已经支持pathinfo,访问www.xxx.com/index.php/admin/index/test查看结果
注意:如果模板文件中使用了U()函数,fastcgi_split_path_info部分要替换为

fastcgi_split_path_info  ^((?U).+\\.php)(/?.+)$;

2、rewrite重写,隐藏入口文件index.php
在站点配置文件中找到 location / {...}这部分,在里面添加以下代码:

# 专门针对tp的rewrite模式
    if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=$1  last;
        break;
    }

保存,重启。这时Nginx完美支持pathinfo模式,访问www.xxx.com/admin/index/test查看结果
网站栏目:关于ThinkPHP5配置Nginx实现兼容pathinfo模式访问
分享网址:http://hxwzsj.com/article/cjojic.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都网站建设 成都网站制作 企业网站设计 成都网站制作 做网站设计 网站建设开发 成都网站设计 自适应网站建设 成都网站设计 企业网站设计 成都网站建设 成都网站建设公司 网站制作 响应式网站建设 企业网站建设 品牌网站建设 手机网站制作 重庆网站制作 成都响应式网站建设 古蔺网站建设 成都网站设计 企业网站设计