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

Apache后端路由匹配失败:.htaccess规则不生效问题求助

解决.htaccess路由规则不匹配导致的404错误

你的问题核心是RewriteRule规则未匹配到带末尾斜杠的请求URL,同时ErrorDocument的二次报错是规则失效后的连带问题。以下是具体排查和修复方案:

问题原因

你当前的规则^api/login?$仅匹配两种情况:

  • /api/login(无末尾斜杠)
  • /api/login?xxx(带查询参数)

但你实际请求的是/api/login/(带末尾斜杠),规则无法命中,直接触发404;而错误提示里的二次404,是Apache尝试处理ErrorDocument时的路径问题(只要错误页面路径正确即可解决)。

修复步骤

1. 修改RewriteRule规则,允许末尾斜杠

将所有API相关规则的结尾?$替换为/?$,让规则同时匹配带/不带末尾斜杠的请求。修改后的.htaccess代码如下:

RewriteEngine On    # Turn on the rewriting engine

RewriteRule    ^not-found/?$    pages-404.php    [NC,L]    # Handle requests for "not-found"

RewriteRule    ^api/addUser/?$    _addUser.php    [NC,L]

RewriteRule    ^api/login/?$    _loginUser.php    [NC,L]

RewriteRule    ^api/logout/?$   _logoutUser.php    [NC,L]

ErrorDocument 404 /pages-404.php

2. 确认ErrorDocument路径有效性

确保pages-404.php文件存放在网站根目录(C:/xampp/htdocs/)下,你的配置中/pages-404.php是绝对路径,只要文件存在就能正常触发。

3. 验证mod_rewrite模块状态

打开XAMPP的httpd.conf文件,确认LoadModule rewrite_module modules/mod_rewrite.so这一行没有被注释(前面无#),若修改过需重启Apache服务。

4. 检查.htaccess文件位置

确保.htaccess放在网站根目录(C:/xampp/htdocs/),而非api子目录,否则规则的匹配范围会被限制在子目录内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:07:33