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

cPanel托管React Router应用刷新子页404的htaccess配置问题

cPanel部署React SPA子路径刷新404修复方案

你的重写规则未生效核心原因是缺少Apache重写引擎启用指令,加上cPanel环境特有的几个配置限制,按以下步骤修复即可:

第一步:替换.htaccess全量配置

删除原有.htaccess的所有内容,替换为以下适配cPanel环境的规则,文件必须放在public_html根目录,和构建生成的index.html同级,文件名严格为.htaccess(开头带半角点,无.txt等后缀):

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteBase /

  # 放行index.html直接请求,避免重定向死循环
  RewriteRule ^index\.html$ - [L]

  # 非存在的文件/目录/软链接请求全部转发给index.html交由React Router处理
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteRule . /index.html [L]
</IfModule>

第二步:逐一排查cPanel特有失效点

替换规则后如果仍不生效,按以下顺序检查:

  • 检查文件权限:.htaccess文件权限设为644,文件所有者和public_html目录所有者保持一致(为你的cPanel账户名,不要设为root或www-data,权限/所有者错误时Apache会直接忽略该文件配置)
  • 清理各类缓存:如果主机开启了LiteSpeed服务(绝大多数cPanel虚拟主机默认开启),需要到cPanel面板的「LiteSpeed Web Cache Manager」中清理全站缓存,同时清空浏览器缓存、CDN缓存后再测试
  • 检查冲突配置:到cPanel的「错误页面」设置项,确认没有自定义全局404规则,部分主机默认的404拦截规则优先级高于.htaccess重写,会直接返回404状态不执行转发;如果存在这类规则,删除自定义404配置即可
  • 检查Web服务类型:如果你的主机默认启用Nginx作为前端静态加速,.htaccess规则不会被解析,需要到cPanel的Nginx配置项中添加对应try_files $uri $uri/ /index.html;规则,或联系主机商将静态请求处理切回Apache
  • 核对React Router配置:如果使用React Router v6的createBrowserRouter,确认basename参数和实际部署路径一致,若项目部署在子目录下,需要同步修改.htaccess中RewriteBase为对应子目录路径,比如部署在/app路径下则改为RewriteBase /app/

注:你原有配置中第二行RewriteCond前的多余缩进在部分旧版Apache环境中会触发解析错误,替换为上述顶格书写的规则即可规避该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:21:20