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

Nginx仅能托管index.html,其他页面访问404问题求助

Nginx 页面跳转404问题解决

需要修改sites-enabled目录下的default配置文件,这是解决此类问题的关键操作。

问题原因

这种情况大多是因为前端使用了路由模式(比如单页应用的history模式),或者Nginx默认配置未正确处理非根路径的请求。当点击页面链接时,浏览器地址栏显示的是前端路由路径,但Nginx会尝试在服务器上查找对应路径的物理文件——而这些路由路径并没有对应的真实文件,因此返回404错误。

具体修改步骤

  1. 打开default配置文件:
    sudo nano /etc/nginx/sites-enabled/default
    
  2. 在server块中找到location /的配置段,调整为以下内容(注意替换实际的网站根目录):
    location / {
        root /var/www/html; # 替换成你的网站实际根目录
        index index.html index.htm;
        try_files $uri $uri/ /index.html; # 核心规则:找不到文件时返回index.html,交由前端路由处理
    }
    
  3. 验证配置文件语法是否正确:
    sudo nginx -t
    
  4. 若验证通过,重启Nginx使配置生效:
    sudo systemctl restart nginx
    

静态多页面场景补充

如果你的网站是普通静态多页面(非单页应用),需额外检查:

  • 页面链接是否使用了正确的相对路径(比如./about.html而非/about.html,若根目录配置正确的话后者也可,但要确保文件实际存在)
  • Nginx的root配置是否指向了包含所有静态文件的目录,确保其他页面文件确实存在于该目录下

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:50:20