防止AWS放大添加尾部斜杠和强制重定向

问题描述 投票:4回答:1

我正在使用AWS Amplify,并且无法弄清楚如何配置我的重写和重定向或route.js,以防止尾部斜杠破坏我的功能。

当我在本地运行代码并尝试访问localhost:3000/foo/bar/id时,页面呈现良好。当我通过放大部署相同的代码,并且用户单击带有href的按钮时,浏览器将获得一个302并将用户重定向到example.com/foo/bar/id/,然后由于该页面不存在,默认的Amplify重定向会将其发送到[ C0]和index.html

我已经尝试在我的反应路线中添加以下内容:

404

以及AWS Amplify控制台中的以下重定向规则:

/foo/bar/:id
/foo/bar/:id/

但没有任何作用。我在这里迷失了方向,有什么建议吗?

reactjs react-router aws-amplify
1个回答
1
投票

Amplify添加了一个斜杠以防止类似/foo/bar/<id> | /foo/bar/<id> | 302 /foo/bar/<id>/ | /foo/bar/<id> | 302 的网址,但这可能不是真正的原因。您的应用/浏览器正在使用服务器端不存在的路由向服务器发出请求(您使用的是严格位于客户端的SPA路由)。尝试在amplify js控制台中添加以下重定向规则(在“应用程序设置”下:“重定向和重写”>“编辑”>“打开文本编辑器”):

/about.html

这会将所有文件重写到[ { "source": "</^[^.]+$|\\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>", "target": "/", "status": "200", "condition": null } ] ,这是服务器端存在的唯一路由。有关更多信息,请签出/index.htmlTrailing Slashes上的文档。

© www.soinside.com 2019 - 2024. All rights reserved.