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

Symfony 5.3部署Apache后LexikJWT的/api/login_check路由配置错误

问题原因及解决方案

1. Apache配置异常(最常见原因)

本地使用Symfony内置服务运行正常,部署到Apache后报错,多数是Apache配置不符合Symfony运行要求导致:

  • 确认Apache已开启mod_rewrite模块,执行命令sudo a2enmod rewrite后重启Apache服务
  • 确认Apache站点的DocumentRoot配置指向你Symfony项目的public目录,而非项目根目录,否则所有路由都会多一层/public前缀导致匹配失败
  • 确认站点配置中,public目录对应的Directory块开启了AllowOverride All,允许.htaccess文件生效
  • 确认public目录下存在Symfony官方的.htaccess文件,缺失可以通过composer require symfony/apache-pack安装生成

2. 生产环境路由缓存未更新

部署到服务器后未清理旧的生产环境缓存,会导致新增的/api/login_check路由无法被识别:

  • 切换到项目根目录,执行生产环境缓存清理命令:php bin/console cache:clear --env=prod --no-debug
  • 执行后确认var/cache/prod目录的权限归属Apache运行用户(通常为www-data),避免权限不足导致缓存读取失败

3. 请求不符合路由规则

  • api_login_check路由默认仅匹配POST请求,使用GET等其他请求方法访问时会触发找不到控制器的报错
  • 确认你请求的路径拼写、大小写完全和配置一致,没有多余的前后缀

4. 路由配置补全

你可以给api_login_check路由显式指定请求方法,避免规则匹配异常:

api_login_check:
    path: /api/login_check
    methods: [POST]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:39:01