Amazon S3 重定向不起作用
Amazon S3 redirects not working
我在 S3 上托管了一个静态站点,我想设置从 www.example.com/2000/200/2/ 到 www.example.com.
的 301 重定向
我尝试创建一个目录结构:
/2000/200/2/index.html
并使用 S3 的控制台在元数据属性中设置重定向,但这没有用。
接下来我尝试了一个桶规则,如下所示:
<RoutingRules><RoutingRule>
<Condition><KeyPrefixEquals>http://www.example.com/2000/200/2/</KeyPrefixEquals></Condition>
<Redirect>
<HostName>www.example.com</HostName>
<Protocol>http</Protocol>
<ReplaceKeyPrefixWith></ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule></RoutingRules>
但现在当我转到 /2000/200/2/index.html 时,我只看到该页面。所以重定向都不起作用!有什么想法吗?
Configure a Bucket for Website Hosting 显示重定向示例,例如:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>docs/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
和
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>images/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
这些 <KeyPrefixEquals>
等于相对于根的路径,而不是包括 http://www.example.com
。尝试匹配该格式。
所以有两件事:
首先,这是我用的规则
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>xx/x/xxxx/xxxxxx</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<HostName>www.example.com</HostName>
<ReplaceKeyWith></ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
与 Amazon 的示例格式略有不同,但它有效。
Second 我注意到 Firefox 在我保存代码段后删除了 XML: "" 的这一部分。移至 Chrome 并且没有问题。
最后,我必须将站点连接到 S3 网站端点而不是 API 端点,包括在 CloudFront 中。
长话短说,AWS Static Site Tool 运行良好,但如果您将其用作起点,然后您的要求的复杂性增加,它就会一些错误的选择给你!
我在 S3 上托管了一个静态站点,我想设置从 www.example.com/2000/200/2/ 到 www.example.com.
的 301 重定向我尝试创建一个目录结构:
/2000/200/2/index.html
并使用 S3 的控制台在元数据属性中设置重定向,但这没有用。
接下来我尝试了一个桶规则,如下所示:
<RoutingRules><RoutingRule>
<Condition><KeyPrefixEquals>http://www.example.com/2000/200/2/</KeyPrefixEquals></Condition>
<Redirect>
<HostName>www.example.com</HostName>
<Protocol>http</Protocol>
<ReplaceKeyPrefixWith></ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule></RoutingRules>
但现在当我转到 /2000/200/2/index.html 时,我只看到该页面。所以重定向都不起作用!有什么想法吗?
Configure a Bucket for Website Hosting 显示重定向示例,例如:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>docs/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
和
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>images/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
这些 <KeyPrefixEquals>
等于相对于根的路径,而不是包括 http://www.example.com
。尝试匹配该格式。
所以有两件事:
首先,这是我用的规则
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>xx/x/xxxx/xxxxxx</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<HostName>www.example.com</HostName>
<ReplaceKeyWith></ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
与 Amazon 的示例格式略有不同,但它有效。
Second 我注意到 Firefox 在我保存代码段后删除了 XML: "" 的这一部分。移至 Chrome 并且没有问题。
最后,我必须将站点连接到 S3 网站端点而不是 API 端点,包括在 CloudFront 中。
长话短说,AWS Static Site Tool 运行良好,但如果您将其用作起点,然后您的要求的复杂性增加,它就会一些错误的选择给你!