我的计划是使用单个Amazon Bucket从www域重定向到非www。域。
我希望能够为其指向任何网址,并让它不仅可以在该网域上执行重定向,还可以保留directioy路径:
www.site.com/test - > site.com/test
可以在此处找到重定向规则: http://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html
这是常规设置的样子:
RoutingRules> =
<RoutingRules>
<RoutingRule>...</RoutingRule>
[<RoutingRule>...</RoutingRule>
...]
</RoutingRules>
<RoutingRule> =
<RoutingRule>
[ <Condition>...</Condition> ]
<Redirect>...</Redirect>
</RoutingRule>
<Condition> =
<Condition>
[ <KeyPrefixEquals>...</KeyPrefixEquals> ]
[ <HttpErrorCodeReturnedEquals>...</HttpErrorCodeReturnedEquals> ]
</Condition>
Note: <Condition> must has at least one child element.
<Redirect> =
<Redirect>
[ <HostName>...</HostName> ]
[ <Protocol>...</Protocol> ]
[ <ReplaceKeyPrefixWith>...</ReplaceKeyPrefixWith> ]
[ <ReplaceKeyWith>...</ReplaceKeyWith> ]
[ <HttpRedirectCode>...</HttpRedirectCode> ]
</Redirect>
Note: <Redirect> must has at least one child element.
Also, you can have either ReplaceKeyPrefix with or ReplaceKeyWith,
but not both.
我会将我的www CNAME指向此存储桶。我的问题是,鉴于亚马逊的控件为我们提供了桶重定向,这可能吗?
答案 0 :(得分:0)
您不能使用单个存储桶并将多个域指向它。使用S3,一个自定义域=一个唯一存储桶,因为存储桶的名称必须与您要使用的自定义CNAME匹配。
答案 1 :(得分:0)
@dcro准确地指出每个桶只有一个域名,因为存储桶名称必须与域名完全匹配。
如果您在该约束内操作,那么将每个请求重定向到不同主机上的相同路径很简单......您所做的就是选择“将所有请求重定向到另一个主机名”(在控制台中,如页面上所述)你链接到)这就是S3所做的,不需要规则配置。
每个请求都会被重定向到指定主机上的完全相同的路径,查询字符串和所有请求。来自我的一个存储桶的实际请求,主机名已清理但路径/ foo / bar在实际请求中,并保留在Location:
标题中:
$ wget --server-response original.example.com/foo/bar -O -
--2013-09-27 17:47:16-- http://original.example.com/foo/bar
Resolving original.example.com (original.example.com)... x.x.x.x
Connecting to original.example.com (original.example.com)|x.x.x.x|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 301 Moved Permanently
x-amz-id-2: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x-amz-request-id: xxxxxxxxxxxxxxxx
Date: Fri, 27 Sep 2013 21:47:18 GMT
Location: http://target.example.com/foo/bar
Content-Length: 0
Server: AmazonS3