Não gosto da ideia de hospedar em example.com e www.example.com
mas não consigo configurar meu DNS para redirecionar www.example.com para example.com. Então, o que tenho agora é que ambos funcionam e servem a página da web. Se eu tiver:
A example.com 123.4.5.6
CNAME www.example.com example.com
isso não deveria fazer um redirecionamento? Eu percebo que posso fazer isso facilmente com JavaScript.
Eu simplesmente não gosto da ideia de colocar todo o meu foco de desenvolvimento/produção em example.com enquanto tenho www.example.com por aí que alguns usuários podem acessar e não vou ficar de olho nele para saber se tem problemas. Por exemplo, digamos que acidentalmente codifiquei algum javascript para procurar "http://example.com". Bem, isso não estará presente na versão "http://www.example.com" do site.
Qual é a coisa certa a fazer aqui? O DNS pode fazer o redirecionamento para mim? Devo redirecionar www.example.com para example.com com Javascript? ...JavaScript não cobrirá chamadas de API.
Geralmente, é considerada uma prática recomendada para um site da Web servir apenas seu conteúdo em um nome de domínio e fazer com que qualquer outro nome de alias seja redirecionado apenas para esse nome de domínio canônico.
No entanto, esse redirecionamento é um conceito HTTP, não DNS. Um
CNAME
registro não redireciona nada, apenas faz com que um nome resolva o mesmo que outro nome no DNS.A abordagem normal seria fazer com que um servidor web facilitasse o redirecionamento diretamente nos cabeçalhos de resposta HTTP (através da configuração do servidor web ou feito pelo aplicativo que manipula a solicitação, se aplicável); enviando status HTTP
301
(ou em alguns contextos302
) com umLocation
cabeçalho.Quanto a outras variações na obtenção de redirecionamento em um navegador, pode-se servir HTML com atualização meta ou possivelmente até mesmo Javascript como você sugeriu. No entanto, isso correrá o risco de que alguns clientes HTTP menos parecidos com navegadores não sigam o redirecionamento.
Além disso, a menos que sirva a um propósito, sugiro que provavelmente seja melhor não ter esses dois nomes apontando para o mesmo site em primeiro lugar, mas, em vez disso, ter um site separado dedicado ao redirecionamento para evitar qualquer confusão.
Quanto aos clientes de API, é mais ou menos necessário fazer as coisas certas em primeiro lugar para evitar que as pessoas comecem a usar os nomes diferentes, porque, se o fizerem, você pode não conseguir corrigi-lo sem quebrar completamente esses clientes . Ou seja, documente qual URL deve ser usado e não tenha nenhuma API disponível sob o(s) outro(s) nome(s) ou faça com que sejam redirecionados apenas para deixar claro onde a API realmente está. Só não espere que os clientes da API realmente sigam os redirecionamentos, porque provavelmente não o farão.