Estou tentando fazer algo que deve ser relativamente simples. Desejo configurar alguns domínios e subdomínios para redirecionar para o domínio principal do nosso site, mas quero colocar os redirecionamentos no Cloudfront. Tudo funciona, exceto redirecionando o caminho da raiz - que me pega um arquivo XML descrevendo parcialmente o intervalo do S3.
Antecedentes
S3
O S3 permite que você configure um bucket de redirecionamento total , como:
Testandoisso,oendpointdaweb(brass9-com.s3-website-us-west-1.amazonaws.com)fazoquedeve-eleredirecionaparabrass9.com.Bom.
Cloudfront
CloudfrontpermitequevocêaponteparaumbucketS3,masamaneiracomoelesugereissoéerrado-emvezdeapontarparaointervalopelonome,comobrass9-com.s3.amazonaws.com, você precisa usar o Web Endpoint acima. Além disso, você pode deixar tudo em seus padrões e obter um bom comportamento de redirecionamento. Assim, um caminho como www.brass9.com/portfolio redireciona corretamente para onde deveria. Bom também.
O problema - o redirecionamento do domínio raiz
A única coisa que então não funciona é redirecionar da planície www.brass9.com . Em vez de obter um redirecionamento, você recebe um resultado estranho:
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>brass9-com</Name><Prefix></Prefix>
<Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated>
</ListBucketResult>
OK ... Então isso não é totalmente inesperado - porque não há um padrão Objeto Raiz. Mas qual objeto raiz padrão eu especificaria para evitar esse comportamento? Qual é o nome do objeto de redirecionamento do S3, se houver, para o qual preciso apontar? Ou há alguma outra configuração adequada, ou isso é apenas um bug de como o Cloudfront e o S3 interagem que a Amazon precisa corrigir?
Solução não operacional conhecida: objeto raiz padrão
É possível especificar um Objeto Raiz Padrão de index.html, mas isso não ajuda em nada - apenas altera o problema. Em vez disso, o URL do Cloudfront redireciona para /index.html no site principal, que é um 404 (não usamos um arquivo index.html, ele é um site orientado por framework do lado do servidor). Eu poderia colocar um index.html no servidor, mas isso acaba com o pequeno ganho de velocidade de usar o Cloudfront.
Perguntas semelhantes
Uma pergunta faz algo semelhante, mas recebe uma resposta em branco de 0 byte por algum motivo, em vez do que estou vendo, uma resposta XML. Não inclui uma pergunta sobre esse problema ou uma resolução.
Artigos relacionados
Um artigo propõe apenas atende todo o site tanto no domínio nu quanto no www . Isso atrapalha os favoritos de qualquer usuário, sua classificação de pesquisa, etc, etc. Você não deve fazer isso.
Vários debatem hospedagem de um site estático no S3 e Cloudfront em vez de um esquema de redirecionamento e, portanto, não estão relacionados.
Então, como faço isso corretamente?
Captura de tela do Cloudfront Configuration - sem objeto raiz padrão, apontando para a origem do S3. Ignore o InProgress - Eu acabei de ativar e desativar o Objeto Raiz Padrão para testar.
Eaconfiguraçãodeorigemparaessadistribuição: