AmazonS3 bucket在访问索引时以XML形式转储整个内容
所以发生了一些奇怪的事情,我为静态网站托管设置了AWS S3 bucket,一切都很好,但每当我进入纯域(例如:“test.com”),它都会返回一个XML文件错误,然后转储该XML中的所有内容。它看起来像,但是其他的域,比如“test.com/test”都可以工作。。我将index.html设置为我的bucket中的索引,并且似乎所有内容都已正确配置。有什么帮助吗AmazonS3 bucket在访问索引时以XML形式转储整个内容,xml,amazon-web-services,amazon-s3,Xml,Amazon Web Services,Amazon S3,所以发生了一些奇怪的事情,我为静态网站托管设置了AWS S3 bucket,一切都很好,但每当我进入纯域(例如:“test.com”),它都会返回一个XML文件错误,然后转储该XML中的所有内容。它看起来像,但是其他的域,比如“test.com/test”都可以工作。。我将index.html设置为我的bucket中的索引,并且似乎所有内容都已正确配置。有什么帮助吗 此外,转到“test.com/index”实际上显示的索引很好,只有当您转到“test.com”时,它才会给出XML错误。当您设置
此外,转到“test.com/index”实际上显示的索引很好,只有当您转到“test.com”时,它才会给出XML错误。当您设置S3静态网站宿主时,bucket名称必须与域名完全匹配。如果你想支持多个域名,那么你需要多个bucket 假设您希望在S3上托管mywebsite.com和www.mywebsite.com。您需要创建两个bucket“mywebsite.com”和“www.mywebsite.com”。然后为每个域名/存储桶对创建两个Route53条目 您可以将一个网站重定向到另一个网站
既然这样做有效:
test.com/index
但这不起作用:test.com
听起来你上传了一个名为index
的索引文件,而不是index.html
。在这种情况下,您需要确保S3 bucket的静态网站配置中的索引文档设置是index
,而不是默认值index.html
,这是您当前所配置的
或者,如果bucket中的其他文件夹中已经有index.html
,这似乎是因为您说过test.com/test
有效,那么您只需将根index
文件重命名为index.html
,您有两个问题:
- 您错误配置了bucket ACL或策略,以允许每个人列出bucket中的对象李>
- 您已将域配置为指向REST端点,而不是网站宿主端点
以下是我为我的网站修复此问题的方法:-您可能需要在cloudfront中正确设置“默认根对象”,它应该是“index.html”,而不是空的。您认为此xml转储有多危险@Mr程序从该URL中删除路径,如果您看到bucket中所有对象列表的第一页,那么我建议这是一个不安全的配置,除非其目的是列出所有内容。路径的哪一部分?@Mr程序路径是
…s3.amazonaws.com
之后的所有内容删除所有内容在那之后。错误访问被拒绝,尝试删除路径的几个部分,所有的部分似乎都被拒绝访问,这至少是好的