当前位置:论坛首页 > Windows面板 > 建议

【已解决】nginx开启path_info后的一个BUG

发表在 Windows面板2022-11-16 15:45 [复制链接] 2 4217

本帖最后由 堡塔运维小林 于 2023-3-20 17:26 编辑

环境:

系统::windows  面板:BT7.7.0
语言:php7.2


开启TP的伪静态后,可能存存类似 /index.php/A/B 此类的访问,那么,nginx 的配置文件php/72.conf 将会出现问题,例如:

location ~ \.php(.*)$ {
    try_files $uri =404;
        fastcgi_pass   127.0.0.1:20072;
        fastcgi_index  index.php;

    fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO  $fastcgi_path_info;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
}

像/index.php/A/B 此类的URI,将会优先匹配到此规则,而 try_files将会抛出404错误。


使用道具 举报 只看该作者 回复
发表于 2022-11-16 17:03:02 | 显示全部楼层
您好,这是一个安全参数配置,尝试在配置中添加#号注释是否可以解决?
使用道具 举报 回复 支持 反对
发表于 2022-11-17 09:51:37 | 显示全部楼层
注释是可以解决的,我知道try_files具有安全性,但是这的确会引起PATH_INFO功能的异常。   建议在后续版本中,使用其它方法解决一下。例如用IF条件判断等等。

使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表