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

Hostinger子域名部署Flutter Web刷新404问题求助(已试方案无效)

解决Hostinger子域名部署Flutter Web刷新404问题

核心问题原因

Flutter Web属于单页应用(SPA),刷新页面时服务器会尝试直接匹配请求路径的物理文件,但SPA路由由前端接管,不存在对应物理文件就会返回404。需要通过.htaccess配置将所有非静态资源请求转发到Flutter的index.html。

正确配置步骤

  1. 确认.htaccess放置位置
    将.htaccess文件放在子域名对应的服务器根目录(比如子域名sub.yourdomain.com对应的目录通常是public_html/sub),而非主域名根目录。

  2. 使用适配的.htaccess配置
    替换为以下配置(适配Flutter文件存放在子域名根目录book文件夹的场景):

    RewriteEngine On
    
    # 可选:强制跳转HTTPS(不需要可删除)
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # 转发所有非静态资源请求到book下的index.html
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /book/index.html [L]
    

之前配置无效的原因

  • 第一个配置重复开启RewriteEngine,且RewriteRule未指定完整的/book/index.html路径,服务器无法定位正确的入口文件。
  • 第二个配置的目标index.html指向子域名根目录,而你的Flutter入口文件在book文件夹内,导致服务器找不到对应文件。
  • 第三个配置的RewriteBase和规则匹配逻辑未正确关联,请求转发路径存在偏差。

额外检查项

  • 确认Hostinger已开启Apache的mod_rewrite模块(cPanel中可在「Apache模块」里查看)。
  • 确保book文件夹权限为755,内部文件权限为644,避免服务器读取权限不足。
  • 测试前清除浏览器缓存或使用隐私模式,排除缓存干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:30:07