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

React无头CMS搭配WordPress后端:非根页面刷新404及.htaccess问题求助

问题解决:React无头CMS+WordPress刷新非根页面404及API兼容方案

核心解决方案

通过在.htaccess中添加WordPress规则区块外的自定义重写规则,区分WordPress API/后台请求与React前端路由请求,同时避免WordPress自动覆盖配置。

1. 修改.htaccess文件

在# END WordPress之后添加以下自定义规则,确保API和后台请求正常,同时解决React路由刷新404问题:

# 自定义重写规则 - 区分WP后端与React前端路由
<IfModule mod_rewrite.c>
  # 优先处理WordPress API、后台及核心文件请求
  RewriteRule ^wp-json/ /index.php [L]
  RewriteRule ^wp-admin/ /index.php [L]
  RewriteRule ^wp-includes/ /index.php [L]
  
  # 其余非文件、非目录的请求,转发到React入口文件
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ index.html [L]
</IfModule>

2. 配置React项目

  • 在React项目的package.json中添加"homepage": ".",确保静态资源路径正确
  • 执行npm run build构建项目,将build文件夹内的所有文件上传到服务器根目录(与WordPress核心文件同目录)

3. 验证WordPress固定链接

登录WordPress后台,进入「设置-固定链接」,选择「文章名」或其他非默认格式,点击保存(此操作会生成WordPress默认规则,但不会影响我们添加在区块外的自定义规则)

方案说明

  • 把WordPress核心路径(wp-json/wp-admin/wp-includes)单独交给index.php处理,保证自定义API和后台功能正常
  • 其余前端路由请求转发到React的index.html,解决BrowserRouter刷新非根页面404的问题
  • 自定义规则写在# END WordPress之后,避免被WordPress保存固定链接时自动覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:33:22