我已经通过AWS Amplify控制台部署了一个香草js应用程序,并从amplifyapp.com获得了一个子域。当我直接调用源文件时master.myappid.amplifyapp.com/js/index.js
,内容将按应有的方式显示。另外,在不带任何特定文件的情况下调用域时,它将按预期显示index.html
。但是,当调用不存在的文件夹或仅是子文件夹而不是其中的特定文件时,它不会抛出404,而是显示一个奇怪的xml响应,如下所示:
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>X</RequestId><HostId>X</HostId></Error>
此外,在调用不存在的文件时, /abc.html
,它也会显示此消息。当调用没有index.html,不存在目录或不存在文件的子目录时,如何设置规则以使AWS Amplify Console显示404?
答案 0 :(得分:0)
因此,该解决方案比预期的要容易得多。只需添加一个重写规则(在左侧边栏的放大控制台中),其源地址为<*>
,目标地址为/404.html
(或任何其他错误页面),类型为“ 404(不是找到)”。现在,所有404都将重定向到404.html,您必须为404.html创建并编写一些内容丰富的404页面。
答案 1 :(得分:0)
AWS Amplify文档中有关于using Redirects的更多详细信息,以处理这种情况。就我而言,我创建了一个SPA应用程序(React),您必须set up a Redirect才能使用Amplify进行直接URL导航。