Eu tenho um site hospedado no Amazon S3. É a nova versão de um site antigo hospedado no WordPress.
Eu configurei alguns arquivos com os metadados Website Redirect Location
para lidar com o local antigo e redirecioná-los para as novas páginas do site.
Por exemplo: eu tinha o http://www.mysite.com/solution
que eu quero redirecionar para http://mysite.s3-website-us-east-1.amazonaws.com/product.html
Então, criei um arquivo vazio nomeado solution
dentro do meu bucket com os metadados corretos:
Website Redirect Location
= /product.html
Os metadados de redirecionamento S3 são equivalentes aos 301 Moved Permanently
ótimos para SEO. Isso funciona muito bem ao acessar o URL diretamente do domínio S3.
Também configurei uma distribuição do CloudFront com base no intervalo do site. E quando tento acessar através da minha distribuição, o redirecionamento não funciona, ou seja:
http://xxxx123.cloudfront.net/solution
não redireciona, mas baixa o arquivo vazio.
Então, minha pergunta é como manter o redirecionamento através da distribuição do CloudFront? Ou alguma idéia de como lidar com o redirecionamento sem deteriorar o SEO?
obrigado
fonte
Análise
De acordo com o comportamento documentado de solicitação e resposta e códigos de status HTTP suportados para origens personalizadas , o Amazon CloudFront não segue os redirecionamentos , infelizmente:
Obviamente, você está usando o Amazon S3 em vez de uma origem personalizada, e uma seção relacionada está notavelmente ausente do Comportamento de solicitação e resposta para origens do Amazon S3 , mas, como os redirecionamentos do Amazon S3 foram adicionados apenas recentemente, consulte Amazon S3 - Suporte para site Redirecionamentos ), pode estar faltando lá ainda.
Por conseguinte, arrisco a suposição de que você não está recebendo um arquivo vazio com o código de status HTTP 200 OK , e sim um status HTTP 301 Movido permanentemente sem corpo algum - você realmente verificou isso com um navegador ou, eventualmente, apenas com uma ferramenta de linha de comando como por exemplo, cURL ou HTTPie ? As últimas ferramentas geralmente exigem um parâmetro explícito para seguir os redirecionamentos, portanto isso pode passar despercebido facilmente.
Solução potencial
Se a análise estiver correta, você precisará configurar o redirecionamento para segmentar explicitamente o CloudFront. Em seguida, consulte Redirecionamentos :
fonte
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Content-Length: 0
Meu entendimento é que o redirecionamento é gerenciado pelo S3 e, nesse caso, o arquivo é hospedado pelo CloudFront e não se importa com os cabeçalhos de redirecionamento definidos para S3 como S3 é o servidor web do arquivo. Não consigo mapear o redirecionamento senão com os metadados.