在宝塔面板中,通过Nginx伪静态规则实现隐藏.php后缀且不触发文件下载的步骤如下:

步骤 1:登录宝塔面板,进入网站设置

  1. 打开宝塔面板,进入「网站」管理界面。
  2. 找到目标网站,点击右侧的「设置」。
  3. 选择「伪静态」选项卡。

步骤 2:配置伪静态规则

在伪静态输入框中填入以下规则:

location / {
    try_files $uri $uri/ @php_rewrite;
}

location @php_rewrite {
    if (-f $request_filename.php) {
        rewrite ^/(.*)$ /$1.php last;
    }
    return 404;
}

规则解释

  • try_files 优先检查原始URI是否存在,若不存在则转给 @php_rewrite 处理。
  • @php_rewrite 会检查是否存在对应的.php文件,存在则重写,否则返回404,避免循环错误。

步骤 3:确保PHP解析正常

  1. 点击「网站设置」中的「PHP版本」,确认已选择正确的PHP版本。
  2. 测试直接访问.php文件(如 https://svip.sdbj.top/jiexi.php),确保能正常执行而非下载。若出现下载,需检查PHP-FPM配置是否正确。

步骤 4:测试访问

  • 访问 https://svip.sdbj.top/jiexi,应显示与.php文件相同的内容。
  • 若出现404,检查服务器是否存在jiexi.php文件,或查看Nginx错误日志(路径:/www/wwwlogs/域名.error.log)排查问题。

补充配置(可选)

若需支持路径中的参数传递(如 jiexi/123),修改规则为:

location / {
    try_files $uri $uri/ @php_rewrite;
}

location @php_rewrite {
    if (-f $request_filename.php) {
        rewrite ^/(.*)$ /$1.php?$args last;
    }
    # 处理路径参数,如 /jiexi/123 → jiexi.php?param=123
    if (!-e $request_filename) {
        rewrite ^/([^/]+)/?(.*)$ /$1.php?param=$2 last;
    }
    return 404;
}

注意事项

  • 清除浏览器缓存:避免旧缓存影响测试结果。
  • 检查文件权限:确保.php文件有可读权限(通常权限设置为644)。
  • 禁用重名目录:若存在名为jiexi的目录,Nginx会优先访问目录,导致规则失效,需删除或重命名。

通过以上步骤,即可实现无后缀访问PHP文件,同时确保正常执行不触发下载。

分类: 技术 标签: PHPNginx

评论

暂无评论数据

暂无评论数据

目录