为 301 重定向配置 Amazon 重定向规则
Posted
技术标签:
【中文标题】为 301 重定向配置 Amazon 重定向规则【英文标题】:Configure Amazon Redirect Rules for 301 Redirect 【发布时间】:2013-10-03 21:11:22 【问题描述】:我的计划是使用单个 Amazon Bucket 进行从 www 域到非 www 的 301 重定向。域。
我希望能够将任何 URL 指向它,并让它不仅在该域上执行重定向,而且还保持定向路径:
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 指向此存储桶。我的问题是,鉴于亚马逊为我们提供的桶重定向控制,这可能吗?
【问题讨论】:
【参考方案1】:您不能使用单个存储桶并将多个域指向它。使用 S3,一个自定义域 = 一个唯一存储桶,因为存储桶的名称必须与您要使用的自定义 CNAME 匹配。
【讨论】:
【参考方案2】:@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
【讨论】:
以上是关于为 301 重定向配置 Amazon 重定向规则的主要内容,如果未能解决你的问题,请参考以下文章