我有两个静态网络应用程序(create-react-apps),目前在两个独立的S3存储桶中 . 两个存储桶都配置为公共读取静态Web托管,并且访问其S3托管URL正确显示网站 .

Bucket 1 - First App:
   index.html
   static/js/main.js

Bucket 2 - Second App:
   /secondapp/
       index.html
       static/js/main.js

我为此设置了一个Cloudfront - 默认的cloudfront origin正确加载 FirstApp ,这样www.mywebsite.com默认加载index.html .

对于 SecondApp ,我设置了一个缓存行为,以便路径模式 secondapp/* 指向SecondApp存储桶URL .

在我的浏览器中,当我访问 www.mywebsite.com/secondapp/ 时,它正确显示第二个Web应用程序 .

但是,如果我省略了尾部斜杠,我会看到第一个应用程序,这是不受欢迎的 . 如果我访问 www.mywebsite.com/secondapp/something ,我也会看到第一个应用程序,这也是不受欢迎的 . (我希望它加载 secondapp 的.html)

这两个应用程序都配置为通过react-router-dom使用html5推送状态 .

我希望的行为是访问以下内容显示正确的站点/存储桶:

www.mywebsite.com - 目前正在工作

www.mywebsite.com/secondapp/ - 目前正在工作

www.mywebsite.com/secondapp - (没有尾随斜杠)不工作,显示First App

www.mywebsite.com/secondapp/something_else - 不工作,显示First App

我怎样才能达到预期的行为?

谢谢!