|
Overview
A Wildcard DNS record is a record
in a DNS zone file that will match all requests for non-existent domain
names, i.e. domain names for which there are no records at all. Using
Wildcard DNS you can «correct»
common mistypes of subdomains, for instance:
w.akadia.com
ww.akadia.com
akadia.com
all becomes
www.akadia.com
If you want, that the Browser URL is also shown as
www.akadia.com after a
mistyped URL, then you can advise the Webserver to do an URL Rewrite.
Goals
These are the Goals using Wildcard
DNS and URL Rewrite
-
No links should break.
-
Visitors should be redirected using
a permanent redirect, HTTP code 301, meaning that the address bar should
update and intelligent user agents may change a stored URI.
-
It should be transparent to the
user.
-
It should work for mistyped
«sub domains»
such as ww. or wwww.
DNS Setup
We need a little magic entry in the
DNS configuration, in our case these is Bind (9.3.2). In Bind you need
to set up a wildcard entry to catch anything that a misguided user or
bad typist might enter in front of your domain name. Just like when
searching or using regular expressions you use an asterisk (or splat) to
match any number of any characters the same thing applies in Bind. So at
the end of my zone DB file I added the following line:
akadia.com. IN A 84.253.50.198
*.akadia.com. IN A 84.253.50.198
Note the period after the domain.
The IP is the shared IP address. That’s all you need, now restart bind.
/etc/init.d/named restart
A very good resource to check the DNS Setup can be
found on
http://www.dnsstuff.com
Apache Setup
Now you need to set up Apache to
respond to requests on any hostname under akadia.com. This can be done
with the following directives:
<VirtualHost 84.253.50.198:80>
.....
ServerAlias *.akadia.com
ServerName www.akadia.com
.....
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.akadia\.com [NC]
RewriteRule (.*) http://www.akadia.com$1 [R=301,L]
</VirtualHost>
The magic lines are the
ServerAlias directive which is self explanitory and the Rewrite
Directives that redirects all requests to www.akadia.com
|