Let’s say we have a few websites hosted in our machine, but we need them to process requests only via a name service; not when accessed via IP address. Very common behavior in shared hosting systems.
A real time saving tip, and it only needs a couple of lines of code. For this purpose we tested it on an Apache 2.4 server running under a CentOS system.
To achieve this we only need to make a new file (e. g. default.conf
under the /etc/httpd/conf.d
directory) containing the following lines:
<VirtualHost _default_:80>
ServerName $WEBSERVER_IP_ADDRESS
UseCanonicalName Off
Redirect 403 /
</VirtualHost>
Of course we should run a reload to apply the changes we made on the service:
systemctl reload httpd
And that’s literally all, from here on out when anyone access the webserver through its IP address, the only thing that will show up is a beautiful 403 error message like this one (which is what we ever intended, right?) as long as you do not tune this up to show anything else or even a custom error message:
Forbidden
You don't have permission to access / on this server.
Cheers!