为什么S3虚拟主机将我重定向到一个未知的位置?

时间:2017-05-24 09:03:45

标签: amazon-web-services redirect amazon-s3

我想在AWS上托管一个静态网站,为此我在我的计算机上构建我的项目。这是一个角度项目,我的dist /目录包含我需要上传的所有文件。我有一个根据我的注册主机名命名的特定存储桶。

我将路由53配置为将我的DNS名称链接到我的S3存储桶,相应地使用amazon教程。

我将我的S3配置为Web主机,ACL很好,权限和CORS访问权限以及重定向规则都可以摆脱“#/”。 不耐烦等待30分钟后,我连接到我的注册DNS名称,说'myexample.com',我可以看到我的网站,一切都很棒。

现在时光飞逝,我想改变一切。我删除了我的存储桶中的每个数据,并将其他网站文件放入其中。

问题出现了:当我转到'myexample.com'时,它被重定向到一个奇怪的网址:“pictureStatic /#/” 这很奇怪,但它实际上是我计算机上存储库的名称。它也是我在S3存储桶中的“重定向规则”配置中使用的名称,因为我以前的托管网站。所以我删除了重定向规则,但重定向仍然存在。 我的重定向规则在哪里: “HostName”:“PictureStatic” “协议”:“http” “ReplaceKeyPrefixWith”:“#/”

我想到了53号路线的问题,或者类似的东西,所以我从头开始做所有事情:

我将我的文件复制到另一个目录中的计算机上,并在任何地方删除任何“picurestatic”字样。 我建立了我的项目 我将构建的文件上载到其他测试存储区中,并将其配置为Web主机。我没有链接到route53区域,而是使用直接URL到桶:我的网站运行良好

我删除我的存储桶“myexample.com”根据我的注册名称命名(对于我的路由53配置是必需的)并从头开始创建它,与我的测试桶的配置完全相同,除了为我的配置权限桶。

CORS是:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <ExposeHeader>GET</ExposeHeader>
    <ExposeHeader>PUT</ExposeHeader>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

ACL是:读取对象/权限对象上的所有人

权限是:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::myexample.com/*"
        }
    ]
}

当我想要在没有route53的情况下直接访问我的存储桶时,通过: myexample.com.s3-website-MyRegion.amazonaws.com

即使我的其他测试版使用相同的操作正常工作,它仍然会将我重定向到我的旧“pictureStatic /#/”。

我不明白如何摆脱这种重定向。它注意到route53,因为我在测试中没有使用它,关键是我必须修复名为“myexample.com”的桶,否则我不再使用我的注册DNS名称了,因为route53迫使他们拥有一样的名字。

我尝试将我的存储桶“myexample.com”配置为重定向到我的测试存储区,但它没有改变任何内容。

有人知道这次重定向的原因吗?

1 个答案:

答案 0 :(得分:0)

好的,我找到了问题的原因,这有点愚蠢。 当我在私人模式下使用我的浏览器时,不再有任何问题,因此我的浏览器上的本地缓存问题比我的应用程序上的问题更多。