AWS Amplify默认配置致Google Search Console报404,但页面可正常加载
解决AWS Amplify + React Router子页面Google Search Console报404的问题
问题核心是React Router属于客户端单页路由,而AWS Amplify默认的重写/重定向规则没适配这种场景:浏览器访问子页面时,会先加载index.html再由前端路由跳转,但Googlebot这类爬虫直接请求子页面URL时,Amplify服务器找不到对应静态文件就返回404。
直接改Amplify的重写规则就能解决:
- 登录AWS Amplify控制台,打开你的应用
- 进入「应用设置」→「重写与重定向」
- 删除现有默认规则,添加一条新规则:
- 源地址:
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf)$)([^.]+$)/> - 目标地址:
/index.html - 类型:选择
200 (Rewrite)
- 源地址:
- 保存配置,等部署完成后再验证
这条规则会把所有非静态资源的请求都转发到index.html,让React Router接管路由渲染。这样Googlebot请求子页面时,服务器返回的是完整的SPA入口文件,前端路由会正确渲染对应页面,404报错自然就消失了。
内容的提问来源于stack exchange,提问作者Cerce
相关产品推荐
相关产品推荐

