You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改Laravel Herd配置实现无.php扩展名的请求自动解析

解决原生PHP无扩展名URL映射问题
  • 调整Nginx核心配置,让无扩展名请求优先匹配对应PHP文件
    找到Nginx配置中处理根路径和PHP的location块,替换成以下配置:

    # 处理根路径请求
    location / {
        try_files $uri $uri/ $uri.php?$query_string;
    }
    
    # 处理PHP文件请求
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000; # 根据你的PHP-FPM实际端口调整
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    

    关键是try_files的顺序:先找请求对应的静态文件,再找目录,最后自动补全.php扩展名并传递请求参数,避免直接跳转到index.php。

  • 检查Herd配置中的强制重写规则
    如果你的herd.config里有类似rewrite ^/(.*)$ /index.php?$1 last;的规则,会强制把所有请求导向index.php,这就是问题根源。直接注释掉这条规则,或者调整它的优先级,让无扩展名PHP文件的匹配逻辑先执行。

  • 验证配置并重启服务
    执行nginx -t检查配置语法是否合法,确认无误后运行nginx -s reload重启Nginx,让新配置生效。

  • 额外排查点

    • 确认服务器上确实存在case-studies.php文件,且Web服务器用户(比如www-data)拥有可读权限
    • 避免其他location块(比如处理静态资源的规则)拦截了PHP请求的匹配逻辑
    • 不要使用专为单页应用设计的try_files $uri $uri/ /index.php?$query_string;规则,原生PHP需要精准映射到对应文件

内容的提问来源于stack exchange,提问作者jbrogan99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:52:06