DNS wildcard w Bind i w Apache'u czyli jak wyłapać każdą domenę i przekierować pod jeden adres www

Posted on Tue 01 November 2011 in Tips4Unices

Często chcemy aby adres zawierający dowolną subdomenę przekierowywał pod jeden adres, a dokładniej na jeden serwis www.
Przykład:
użytkownik wpisuje w przeglądarkę np.:
foo.fubar.pl bar.fubar.pl
i chcemy aby został przekierowany pod adres:
www.fubar.pl
Najpierw robimy właściwy wpis do pliku strefy w Bind-zie.
Najpierw wpisujemy rekord dla subdomeny www:
www A xxx.xxx.xxx
a potem rekord typ wildcard:
* CNAME www

Restartujemy Bind-a (nie zapomnijcie zmienić seriala!).

Teraz konfiguracja Apache.
W sekcji naszego serwera wirtualnego dopisujemy:
ServerAlias *.fubar.pl

Restartujemy Apache'a

I jeszcze regułka mod_rewrite, żeby dowolną subdomenę czyli z przykładu foo oraz bar zamienić na www.

Dopisujemy do .htaccess w katalogu głównym serwera wirtualnego:

RewriteEngine onRewriteCond %{http_host} .
RewriteCond %{http_host} !^www.fubar.pl [NC]
RewriteCond %{http_host} ^([^.]+)\.fubar.pl [NC]
RewriteRule ^(.*) http://www.fubar.pl/ [R=301,L,QSA]