404错误通常源于URL路径与服务器文件路径不一致:需逐字比对大小写、斜杠类型、空格等;通过FTP确认文件真实存在及扩展名;检查目录路径是否缺末尾斜杠;用开发者工具Network面板定位实际请求路径;用curl -I或curl -v验证服务器响应并排查重定向。

当你在浏览器中输入网址却看到“404 Not Found”,而你确信这个页面应该存在,问题很可能出在请求路径与服务器上实际文件路径不一致——Web服务器对大小写、斜杠位置、中文符号、不可见空格极其敏感,哪怕只差一个字符,它就找不到文件。
核对URL与服务器文件路径是否完全匹配
第一步:把地址栏里的完整URL复制出来,粘贴到记事本里,逐字比对。重点看有没有混用大小写字母(比如/About.html写成/about.html)、把英文斜杠/误输成全角中文斜杠/、末尾多了一个空格或换行符。
第二步:打开FTP工具或宝塔面板的文件管理器,按URL路径一级级点进去。例如URL是https://example.com/blog/post/2025/my-article.html,你就得依次打开blog → post → 2025文件夹,确认里面真有my-article.html这个文件,且扩展名是.html而不是.htm或.HTML。
第三步:检查路径末尾是否遗漏必需斜杠。有些服务器要求目录路径必须以/结尾,比如访问/products返回404,但/products/就能打开,说明后端配置认定了这是个目录入口。
用浏览器开发者工具定位真实请求路径
按下F12打开开发者工具→切换到【Network】标签→刷新页面→筛选出状态码为404的请求→点击该请求→在【Headers】里找到Request URL字段。这个URL就是浏览器实际发出的地址,也是你要修正的目标。
注意:如果这里显示的是https://example.com/js/app.js,但你在服务器上只找到/public/js/app.js,说明前端构建时没配对publicPath,或者Nginx的root没指向public目录。
这一步操作起来很简单,直接把Request URL里的路径抄下来,去服务器上找同名文件就行。
通过curl命令验证服务器端真实响应
方法一:在终端执行curl -I http://your-domain.com/exact/path.html(把exact/path.html替换成你怀疑出错的路径)。如果返回HTTP/2 404,说明服务器确实没这个文件;如果返回HTTP/2 301或200,那问题不在路径本身,而在前端跳转逻辑或重定向规则。
方法二:加-v参数看完整握手过程:curl -v https://your-domain.com/test.css。重点观察> GET行发出的路径和< HTTP/2 404之间的所有<响应头——如果出现< location: https://...,说明被中间层重写了URL,原始路径早被改掉了。
【关键提醒】:不要只测首页,一定要测报错的具体资源路径。首页能打开不代表子路径就一定对——很多网站根目录有index.html,但/admin/login.html根本不存在。

















