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

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开源内容管理系统了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值