2013-09-27 134 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