当前位置: 首页 > 工具软件 > HkCms > 使用案例 >

win服务器使用宝塔配置nginx + HkCms时遇到404错误,phpinfo无法正确解析类似xxx.php/ceshi/ceshi地址解决方法

冯阳华
2023-12-01

1. 问题

Windows服务器下使用宝塔面板配置 nginx 部署HkCms开源内容管理系统时,在没有开启伪静态格式的情况下、访问例如:​​​​​​​xxxx.com/index.php/index/index等类似地址时,Nginx直接报404错误。在测试过程中发现nginx并没有转发去到php,所以有可能是nginxphpinfo解析规则问题。

2. 解决

在宝塔后台去到网站页面打开设置打开配置文件,phpinfo使用的是以下配置文件,根据这个路径去到宝塔目录里面找到php/7.3conf文件。

#PHP-INFO-START 
include php/73.conf;
#PHP-INFO-END

打开文件后里面的代码如下,下面是我修改后的配置,注释的是文件原有的配置,如果你使用的系统默认也是​​​​​​​xxxx.com/index.php/index/index这种格式也是报404错误那么可以参考下面的代码修改。

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;
}

主要增加的是下面这块代码

set $fastcgi_script_name2 $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
        set $fastcgi_script_name2 $1;
        set $path_info $2;
    }

保存并重启nginx后就能正常访问HkCms开源内容管理系统了。

 类似资料: