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

Codeigniter集成Lumen API后htaccess路径重定向404问题求助

解决步骤

1. 修改项目根目录(CodeIgniter侧)的.htaccess规则

问题根源是根目录的重写规则将所有请求都转发到了CodeIgniter的入口文件,api开头的路径没有被排除,导致无法进入api目录下的Lumen规则处理。
在根目录.htaccess的HTTPS跳转规则之后、转发到CI入口的规则之前,新增一行放行api路径的规则,修改后的完整重写块如下:

<IfModule mod_rewrite.c>
    RewriteEngine on
    
    RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
    RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [QSA,R,L]
    
    # 新增规则:匹配api开头的请求直接放行,不进入CI路由处理
    RewriteRule ^api(/.*)?$ - [L]
    
    RewriteCond $1 !^(index\.php|public|robots\.txt)
    RewriteCond $1 !^([^\..]+\.php|robots\.txt|sitemap\.xml)
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

2. 验证Lumen侧配置

你当前api目录下的.htaccess规则无需修改,正常情况修改根目录规则后:

  • 访问example.com/api/test会进入Lumen框架处理,返回对应接口响应
  • 访问example.com/api返回404属于Lumen框架的正常逻辑:Lumen默认没有定义根路径/的路由,如需处理该请求,只需在Lumen的路由文件中新增对应路由即可:
    $router->get('/', function () {
        return 'API服务运行正常';
    });
    

可选校验项

如果修改后仍有问题,可逐一检查:

  • 服务器已开启mod_rewrite扩展
  • api目录及内部文件的权限设置正确,Web进程拥有读取执行权限
  • Lumen的路由定义符合预期,/test路径的路由确实存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:02