Método 1 - use iptables
Isso encaminhará todo o tráfego para as portas 80 & 443 do servidor respondendo a http://example.com
ou https://example.com
para algum outro servidor usando apenas iptables
.
$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-m conntrack --ctstate NEW -j DNAT --to www.example.com:80
$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 \
-m conntrack --ctstate NEW -j DNAT --to www.example.com:443
$ sudo iptables -t nat -A PREROUTING -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT
$ sudo iptables -A POSTROUTING -t nat -j MASQUERADE
Método 2 - usando o Apache
No Apache, você desejará fazer uma regra de reescrita de URL que interceptará essas solicitações e anexará o www.
a elas. Algo parecido com isto:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^exmple\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L]
O R=permanent,L
faz com que a regra acima seja invocada apenas 1 vez e, em seguida, os clientes saberão desse ponto em diante para acessar www.example.com. Este é um status de resposta HTTP 301 . Os clientes só saberão se os URLs estão sendo movidos até que sejam reiniciados, portanto, isso precisará permanecer in-loco indefinidamente.
Método # 3 - através do registrador
Não me lembro desse método, mas parece que lembro que, quando você configura um nome de domínio, muitas vezes há opções para mapear o domínio de nível superior para um determinado host. Talvez seu registrador forneça recursos semelhantes.
Este seria o método mais desejável, se plausível, uma vez que manterá seu ambiente mais simples e reduzirá o hops extra que você terá que incorrer agora toda vez que um cliente acessar seu site.