网站迁移后HTML页面全报404,主因是服务器配置未同步更新:DocumentRoot未指向新目录、默认首页未列入DirectoryIndex或index指令、重写规则误拦截、SPA缺少fallback配置,以及浏览器缓存未清除。

网站迁移后HTML页面全报404,基本不是文件丢了,而是请求根本没落到你放好的HTML文件上——服务器还在按旧路径找,或压根没把请求交给静态文件服务逻辑。
检查DocumentRoot是否指向新目录
迁移后最容易被忽略的,是Web服务器配置里的根目录没改。Apache的DocumentRoot、Nginx的root指令,必须明确指向你新放HTML文件的物理路径(比如/var/www/html-new),而不是旧的/var/www/html。
- Apache:查
httpd.conf或站点vhost文件里的DocumentRoot,确认路径存在且权限可读(ls -l /var/www/html-new看属主和r-x) - Nginx:查对应
server块中的root,注意它不继承上级,每个server都要单独设 - 改完必须重启服务:
sudo systemctl restart apache2或sudo nginx -s reload,只刷新面板不算数
确认index.html是否在DirectoryIndex白名单里
即使HTML文件在根目录,如果服务器没配好默认首页,访问https://yoursite.com/也会404。关键看DirectoryIndex(Apache)或index(Nginx)是否包含index.html。
- Apache:检查配置中是否有
DirectoryIndex index.html index.htm,不能只写index.php - Nginx:
location /块里要有index index.html;,且位置在try_files之前(否则会被覆盖) - Windows环境特别注意:文件名可能是
Index.html(首字母大写),而Linux服务器区分大小写,必须严格匹配
排查URL路径是否被重写规则意外拦截
迁移常伴随.htaccess或Nginx rewrite规则复制,但旧规则可能还开着,把/about.html强行重定向到不存在的/pages/about之类。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
立即学习“前端免费学习笔记(深入)”;
- Apache:临时重命名项目根目录下的
.htaccess,再测/about.html——如果好了,说明是里面某条RewriteRule搞的鬼 - Nginx:检查
location块里有没有rewrite或return 301,尤其注意^/old/类规则是否残留 - 用浏览器开发者工具的
Network标签看404请求的真实Request URL,对比你文件的实际路径,差在哪一级就查哪一级配置
Vue/React等SPA部署后刷新404别乱改代码
如果迁移的是打包后的前端单页应用(dist目录下只有index.html),那所有非根路径(如/user/profile)的404,99%是服务器没配fallback,不是代码问题。
- Nginx:必须用
try_files $uri $uri/ /index.html;,不能只写try_files $uri $uri/ =404; - Apache:确保
.htaccess里有RewriteRule ^(.*)$ /index.html [L],且RewriteCond %{REQUEST_FILENAME} !-f和!-d条件都在 - 别去改Vue Router的
mode: 'hash'来绕过——这是降级方案,不是修复;真正要动的是服务器配置
最常被跳过的动作:迁移后没清浏览器缓存,导致旧的301重定向或404响应被强缓存;务必用Ctrl+F5硬刷,或开无痕窗口验证。服务器配置改了但没彻底重启,也是高频坑点。


















