1. 问题

Windows服务器下使用宝塔面板配置 nginx 部署HkCms时,访问如:http://www.xxxx.com/index/index/index下正常访问,但是在访问http://www.xxxx.com/xxx.php/ceshi/ceshi时,直接报404。在测试过程中发现nginx并没有去到php,所以有可能是phpinfo解析规则问题。

2. 解决

  • 宝塔里去到网站打开设置打开配置文件,phpinfo使用的是以下配置文件,根据这个路径去到宝塔目录里面找到php/73.conf
#PHP-INFO-START 
include php/73.conf;
#PHP-INFO-END
  • 修改以下配置,注释的是原有的配置
location ~ \.php(.*)$ {
    try_files $uri =404;
    fastcgi_pass   127.0.0.1:20073;
    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;
 
    set $fastcgi_script_name2 $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
        set $fastcgi_script_name2 $1;
        set $path_info $2;
    }
    fastcgi_param   PATH_INFO $path_info;
    fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;
    fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;
 
    include        fastcgi_params;
}
  • 重启Nginx服务,测试访问成功