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

Symfony路由失效,所有请求均返回phpinfo页面求助

问题排查步骤
  • 确认Web服务器根目录配置
    确保Docker中的Web服务(Apache/Nginx)根目录指向Symfony项目的public文件夹——这是Symfony的唯一入口目录。如果根目录误设为项目根目录,服务器可能加载其他默认文件(比如误放的phpinfo文件),而非Symfony的index.php入口文件。

  • 验证Web服务器的路由转发规则

    • 若使用Apache:确认已启用mod_rewrite模块,public/.htaccess文件存在且配置正常(Symfony默认会生成该文件),同时Apache配置中AllowOverride All已开启,保证rewrite规则能生效。
    • 若使用Nginx:检查配置文件是否包含正确的转发规则,确保所有请求都导向index.php,示例配置片段:
      location / {
          try_files $uri $uri/ /index.php$is_args$args;
      }
      
  • 清理Symfony缓存
    执行容器内的缓存清理命令:

    php bin/console cache:clear
    

    即便debug:router能显示路由,缓存异常也可能导致路由不生效,尤其是切换环境后。

  • 检查控制器路由注解的正确性
    确认HomeController中正确导入路由注解类,且路由属性配置无误:

    // src/Controller/HomeController.php
    namespace App\Controller;
    
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\Routing\Annotation\Route;
    
    class HomeController extends AbstractController
    {
        #[Route('/home', name: 'home')]
        public function index()
        {
            return $this->render('home/index.html.twig');
        }
    }
    

    注意命名空间和注解的拼写,避免低级错误。

  • 排查Docker文件同步问题
    确认本地修改的控制器、路由配置文件已同步到Docker容器中。如果使用volume挂载,检查挂载路径是否正确,防止容器内的文件还是未修改的旧版本。

  • 检查public目录下的冗余文件
    查看public目录下是否存在phpinfo.php、index.html等优先级高于index.php的默认文件,服务器会优先加载这些文件,导致Symfony入口未被执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:09:57