Recentemente eu criei uma empresa-de-um-só-homem para fazer consultoria informática (até arranjei uns cartões de negócios fixes!). O nome da empresa é Curious Elephant e parte do pacote de criação da empresa em Portugal é que o Estado Português oferece um domínio .pt grátis (curious-elephant.pt) e alojamento das páginas por um ano. O que eu queria fazer com isto era esquecer o alojamento das páginas e apontar o domínio da empresa para este website.
O que podes aprender com este post
- Como não adicionar vários domínios personalizados ao GitHub Pages
- Como fazer redirecionamento de domínios no Cloudflare
A abordagem naive
Como podem (ou não) ter reparado, este site é feito/alojado em Jekyll e GitHub Pages. Também já tem configurado um domínio personalizado a apontar para ele (migueldavid.eu).
De uma forma ingénua, tentei então simplesmente criar um registo DNS CNAME de curious-elephant.pt
para minac.github.io
e adicionar o novo domínio ao ficheiro CNAME neste repositório. Não funcionou.
A abordagem Cloudflare
Li na ajuda das GitHub Pages e no StackOverflow que ter vários domínios personalizados a apontar para um webiste no github não é possível.
Uma pessoa pode criar um segundo repositório e colocar lá uma nova cópia do código e ter um CNAME diferente para cada repositório, mas isto pareceu-me uma abordagem totó.
Mas existe magia de redirecionamento do DNS na maioria dos registrars e dos gestores de domínios. Então lá fui ver no Cloudflare.
Para ser claro, aqui estão os registos relevantes DNS (os IPs são do github):
Tipo de registo | Nome | Valor |
---|---|---|
A | migueldavid.eu | 192.30.252.153 |
A | migueldavid.eu | 192.30.252.154 |
CNAME | www | migueldavid.eu |
Uma pesquisa rápida na zona de ajuda deles levou-me às Page Rules
onde rapidamente criei o seguinte:
E voilà! Após cerca de um minuto eu já podia inserir o meu novo domínio e vir ter a este website!
BÓNUS: Esta regra foi preparada para aceitar argumentos por isso se eu escrever algo tipo curious-elephant.pt/about
vou parar directamente a migueldavid.eu/about
. :)
Espero que isto ajude alguém!
Se encontrares algum erro ou problema, por favor cria um issue aqui.
Para uma explicação mais detalhada (em Inglês) sobre os registos DNS e o redirecionamento http > https, vê o post do Andrew Molney’s.