AWS Amplify 控制台显示奇怪的 xml 而不是 404
AWS Amplify Console shows weird xml instead of 404
我已经通过 AWS amplify 控制台部署了一个 vanilla js 应用程序,并从 amplifyapp.com 获得了一个子域。当我直接调用源文件时,f.e。 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>
此外,当调用不存在的文件时,f.e。 /abc.html
,也会显示这条信息。当调用没有 index.html、不存在的目录或不存在的文件的子目录时,如何设置规则使 AWS Amplify 控制台显示 404?
因此,解决方案比预期的要容易得多。只需添加一个重写规则(在左侧边栏的放大控制台中),源地址为 <*>
,目标地址为 /404.html
(或任何其他错误页面),类型为“404(不是成立)”。任何 404 页面现在都将被重定向到 404.html,您必须为此创建并编写一些信息丰富的 404 页面 ;)
AWS Amplify 文档有关于 using Redirects to handle this situation. For my case, I created a SPA app (React) and you must set up a Redirect 直接 URL 导航与 Amplify 一起工作的更多详细信息。
我已经通过 AWS amplify 控制台部署了一个 vanilla js 应用程序,并从 amplifyapp.com 获得了一个子域。当我直接调用源文件时,f.e。 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>
此外,当调用不存在的文件时,f.e。 /abc.html
,也会显示这条信息。当调用没有 index.html、不存在的目录或不存在的文件的子目录时,如何设置规则使 AWS Amplify 控制台显示 404?
因此,解决方案比预期的要容易得多。只需添加一个重写规则(在左侧边栏的放大控制台中),源地址为 <*>
,目标地址为 /404.html
(或任何其他错误页面),类型为“404(不是成立)”。任何 404 页面现在都将被重定向到 404.html,您必须为此创建并编写一些信息丰富的 404 页面 ;)
AWS Amplify 文档有关于 using Redirects to handle this situation. For my case, I created a SPA app (React) and you must set up a Redirect 直接 URL 导航与 Amplify 一起工作的更多详细信息。