2013-09-27 97 views
0

我的计划是使用一个Amazon Bucket执行301从www域到非www的重定向。域。将301重定向规则配置为301重定向

我希望能够指向任何URL到它,拥有它不仅表现在该域的重定向,但也保持directioy路径:

www.site.com/test - > site.com /测试

重定向规则可以在这里找到: 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

不能使用单个桶,并指向多个域它。使用S3,一个自定义域=一个独特的存储桶,因为存储桶的名称必须与您要使用的自定义CNAME相匹配。

0

@dcro准确地指出,这是严格每桶一个域名,因为桶名称必须域名完全匹配。

如果您在该约束条件下操作,那么将每个请求重定向到不同主机上的相同路径很简单...您只需选择“将所有请求重定向到另一个主机名”(在控制台中,如页面链接到),这就是S3所做的,不需要规则配置。

每个请求被指定主机,查询字符串,所有重定向到完全相同的路径。从我的桶的一个实际要求,主机名消毒但是路径/富/栏是实际的请求,并在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