zhulibo0391 发表于 2022-11-16 15:45:58

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

本帖最后由 堡塔运维小林 于 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_indexindex.php;

    fastcgi_split_path_info^((?U).+\.php)(/?.+)$;
    fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
    fastcgi_paramPATH_INFO$fastcgi_path_info;

      fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
      include      fastcgi_params;
}

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


运维风光 发表于 2022-11-16 17:03:02

您好,这是一个安全参数配置,尝试在配置中添加#号注释是否可以解决?

zhulibo0391 发表于 2022-11-17 09:51:37

注释是可以解决的,我知道try_files具有安全性,但是这的确会引起PATH_INFO功能的异常。   建议在后续版本中,使用其它方法解决一下。例如用IF条件判断等等。

页: [1]
查看完整版本: 【已解决】nginx开启path_info后的一个BUG