Mar*_*tin 48 amazon-s3 http-redirect amazon-web-services
是否可以在s3对象上放置重定向标头?像301重定向一样.
例如:
mybucket.amazon-aws.com/myobject --> example.com/test
Run Code Online (Sandbox Code Playgroud)
最好通过在对象上设置这样的标题:
HTTP/1.1 301 Moved Permanently
Location: http://example.com/test
Content-Type: text/html
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)
Lay*_*yke 40
在过去一个月内,刚刚添加了此功能.
您可以在此处找到API文档:
http://docs.amazonwebservices.com/AmazonS3/latest/dev/how-to-page-redirect.html
当您输出对象时,需要将x-amz-website-redirect-location
针对该对象的键设置为您希望使用的301重定向.
您也可以使用控制台.
Dmi*_*rev 14
如果为存储桶启用了网站托管,则可以使用另一种方法添加301重定向.根据它,重定向规则在XML级格式的存储桶级别进行描述,并且可以通过AWS S3控制台(静态网站托管部分)在存储桶的属性中指定.目前可以在此处找到有关其语法的完整文档.
只要在一个地方更容易管理所有重定向,您就可以轻松地进行大量的URL移动.例如,可以定义重定向规则
<RoutingRule>
<Condition>
<KeyPrefixEquals>index.php</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>index.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
<RoutingRule>
<Condition>
<KeyPrefixEquals>blog.php?id=21</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>mysql-utf-8-database-creation-snippet.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
Run Code Online (Sandbox Code Playgroud)
看起来它与创建假对象和为它们指定x-amz-website-redirect-location元数据相同.坏消息是,对于一个存储桶,XML中的规则可能不超过50个.是的,管理XML并不方便.但对我来说,这种方式目前更容易.同样,因为在一个地方管理所有文件更容易.
例如,当您重命名包含大量页面的目录时,这种XML方法非常有用.在这种情况下,有必要为目录创建单个重定向规则,而不是为其中的每个页面创建单独的规则.例如
<RoutingRule>
<Condition>
<KeyPrefixEquals>blog/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>it-blog/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
Run Code Online (Sandbox Code Playgroud)
根据这条规则example.com/blog/whatever
将被重定向到example.com/it-blog/whatever
.
这种方法的另一个有用特征是它只替换前缀.与目录相同,可以重定向页面,但保存查询参数.如果对这些查询参数进行了一些JS处理,那么它可能是合适的.使用x-amz-website-redirect-location元数据,您可能会松开它们.
正如我提到的,编写和阅读XML可能不方便.为了克服这个问题,我 在GWT中编写了一个简单的在线工具,将原始文本和新URL转换为XML格式.它使用
KeyPrefixEquals
谓词并执行ReplaceKeyPrefixWith
重定向.
最后,根据文档,如果禁用了网站托管,则重定向支持不适用于此存储桶.
编辑:请参阅上面的答案,因为此功能现在在AWS中是原生的
不是真的没有.没有内置功能允许这样做,但是,您可以做的是创建对象,即使您不将其保存为HTML,也可以将其应用为HTML文件.
例如:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Refresh" content="0; URL=http://www.example.com/target/">
<title>Redirect</title>
</head>
<body>
<a href="http://www.example.com/target/">http://www.example.com/target/</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在这里查看此页面:快速查看其中的源代码.
view-source:http://carltonbale.com.s3.amazonaws.com/distance_chart.png
你可以在这里看到解释:
第8点:http://carltonbale.com/9-hidden-features-of-amazon-s3
归档时间: |
|
查看次数: |
31561 次 |
最近记录: |