Set Up Subdomains with Apache Virtual Hosts
Some people are unaware that the "www" part of the URL is actually a subdomain (http://www.example.com), and can (in theory) point to a different location than http://example.com - it is not advised that you use www as an active sudomain, as most people expect both example.com and www.example.com to have the same content.
This is actually the basis for canonicalisation, but that's another blog post altogether
So how do we set up subdomains using Apache virtual hosts? It's actually very simple, we just need to configure two things, follow this guide for a very simple apache subdomain virtual host example:
- Apache Virtual Host Configuration File
- Your DNS settings
<VirtualHost *:80>
# Admin email, Server Name (domain name) and any aliases
ServerAdmin contact@randoof.info
ServerName www.randoof.info
ServerAlias randoof.info
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /srv/www/randoof.info/public_html/
# Custom log file locations
LogLevel warn
ErrorLog /srv/www/randoof.info/logs/error.log
CustomLog /srv/www/randoof.info/logs/access.log combined
</VirtualHost>
<VirtualHost *:80>
# Admin email, Server Name (domain name) and any aliases
ServerAdmin contact@randoof.info
ServerName dev.randoof.info
DocumentRoot /srv/www/randoof.info/dev/
# Custom log file locations
LogLevel warn
ErrorLog /srv/www/randoof.info/logs/dev.error.log
CustomLog /srv/www/randoof.info/logs/dev.access.log common
</VirtualHost>
Don't forget to reload Apache after setting up your virtual host subdomain (sudo service apache2 reload
).
That's basically it, there's not much to the apache subdomain virtual host example, probably the hardest part is the DNS configuration, but generally even that is simple.