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:

Page Rule no Cloudflare

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.