Redirecionar solicitações não www para www no Amazon Route 53

44

Quero redirecionar todas as solicitações de example.compara www.example.com.

De preferência, isso deve acontecer no nível do DNS. Tentei usar registros PTR, mas isso simplesmente falha, retornando um 404.

wwww.example.com é um ALIAS para um Elastic Load Balancer.

Qual é a maneira mais simples de conseguir isso?

flaviano
fonte
O que você tentou com os registros PTR? Estou curioso.
TRiG
@flavian o autor do pedido solicitou uma reescrita de DNS, não uma reescrita de URL, e ele disse especificamente que não se importava com a aparência da URL.
pauska
4
@ flavian por sua vez, você disse que deseja fazer o redirecionamento no DNS. Minha resposta explica como fazer isso no DNS. Se você deseja redirecionar a URL, precisará reescrever a URL. Não tem nada a ver com DNS.
pauska
Existe alguma razão específica para fazer isso? Eu faria o contrário .
nyuszika7h
SANs em EV SSL.
flavian

Respostas:

50

Se você já estiver usando o Route 53, poderá usar o apelido proprietário "record" para resolver esse problema. Com o DNS padrão, você não pode fazer isso e é necessário que um site envie um redirecionamento 301. Obviamente, você ainda precisa enviar os redirecionamentos 301 ou lidar com o fato de que algumas solicitações serão recebidas sem o www (embora você deva enviar 301s por razões de SEO).

Provavelmente, a maneira mais fácil de fazer isso é configurar um bucket S3 com o nome do domínio nu e configurar as propriedades do bucket para redirecionar de example.com para www.example.com e, em seguida, no Route 53, criar um alias para o nu nome de domínio que aponta para esse bucket S3.

Dos Comentários

Para melhorar a resposta, aqui está o que fizemos para fazer isso funcionar:

  • Configure o bucket - não importa qual seja o nome e deve permitir o público.
  • No bucket, clique em propriedades e clique em hospedagem estática de sites. Clique em redirecionar todas as solicitações para outro nome de host e digite o site para o qual você deseja que o tráfego vá.
  • Copie o terminal do nome do bloco e vá para a zona hospedada no console do Route53 e adicione um CNAME com Alias ​​No ao URL do qual você precisa ser redirecionado e cole o terminal como seu valor.
Michael Hampton
fonte
@ Michael-hampton me corrija se eu estiver errado, mas o bucket S3 redireciona apenas para o nome de domínio nu sem caminho, certo? Eu adicionei um bucket S3 corretamente para o meu domínio, mas ele redireciona apenas o domínio nu e não redireciona nada que tenha um caminho. Eu estou supondo que a reescrita de mod é o caminho a percorrer?
John John Harding
@JohnHarding Eu não sei. Não uso mais a maioria dos serviços Amazon AWS, incluindo o S3.
Michael Hampton
2
Para melhorar a resposta, aqui está o que fizemos para que isso funcione: - Configurar o balde - não importa qual é o nome e deve permitir o público. - No bucket, clique em propriedades e clique em hospedagem estática de sites. Clique em redirecionar todas as solicitações para outro nome de host e digite o site para o qual você deseja que o tráfego vá. - Copie o terminal do nome do bloco e vá para a zona hospedada no console do Route53 e adicione um CNAME com Alias ​​No ao URL do qual você precisa ser redirecionado e cole o terminal como seu valor.
Nathanq
4
Isso funciona apenas para solicitações http, pois o S3 não suporta https. Os pedidos https://example.comfalharão.
Harry King
para fazer o https://example.comredirecionamento, https://www.example.comvocê precisa, infelizmente, configurar outra nuvem apontando em um balde com redirecionamento http estático para o www.example.com. Vale ressaltar que você precisa adicionar o domínio apex no CNAMEcampo em sua configuração de
cloudfront
6

Para um alias de DNS, basta adicionar um registro CNAME ou A no DNS. Veja minha resposta aqui: Como redirecionar www para não-www no Route53?

Para reescrever URLs (como redirecionar os clientes para outro endereço), você precisa de alguma forma de lógica de reescrita de URL feita no servidor da web. Existem várias maneiras de fazer isso, e isso depende do tipo de servidor da web que você usa. O mais popular é usar mod_rewrite com apache. Este site está repleto de perguntas sobre mod_rewrite, algumas pesquisas devem obter o que você deseja.

pauska
fonte
Eu usei CNAME no meu bind9 srv interno há exatamente uma hora, mas os resultados não são os mesmos da reescrita de URL. Ao inserir esse CNAME na barra de endereços do navegador, você obtém exatamente esse URL, ele não muda para o URL para o qual o CNAME aponta. Estou usando o apache mod_rewrite agora, enviando 301s quando não houver www. prefixo.
Kitet
3
A resposta para a qual você vincula é o envio www.domain.compara domain.com. Esta questão é sobre o oposto. Sua solução de uso CNAMEou Aregistros funciona para envio domain.compara www.domain.com?
Carl G
4

Você pode fazer isso usando a ajuda de um bucket s3. As etapas são coladas abaixo:

Etapa 1. Crie um bucket s3.

Etapa 2. Faça o bucket como um site estático hospedando com redirecionamento.

Etapa 3. Edite a entrada do AWS Route 53 para domínio não www.

A - Endereço IPv4 -> Alias ​​Sim -> Alias ​​Alvo (Selecione o ponto final do bucket s3 no menu suspenso).

Etapa 4. Salve o conjunto de registros.

Arunlal Ashok
fonte
0

No momento, o AWS Route53 não oferece suporte para redirecionar o que é conhecido atualmente como registro APEX (o domínio raiz) para outro nome de domínio, embora eles estejam trabalhando em uma solução.

Consegui isso criando um registro A (alias) que aponta meu domínio raiz (devopsfolks.com) para o endereço IP da minha solução hospedada no WP ... E a resposta é sim: se o IP mudar, será necessário para alterar o alias. No entanto, o provedor me garantiu que o IP é fixo, a menos que eles precisem executar algum tipo de recuperação de desastre e alterar o hardware. Nesse caso, eles montarão um proxy para executar os redirecionamentos e dar aos clientes 45 dias para alterar seu mapeamento.

Marco Tedone
fonte
5
A não significa apelido, significa endereço. E você pode facilmente redirecionar com o Route 53 usando o método S3 bucket mostrado acima.
Michael Hampton
"Eles estão trabalhando em uma solução" houve alguma atualização sobre isso?
Tom