Apache restrict access based on IP address to selected directories
Apache web server allows server access based upon various conditions. For example you just want to restrict access to url http://subdomain.domain.com/ (mapped to /var/www/subdomain directory) from 192.168.1.0/24 network (within intranet).
Apache provides access control based on client hostname, IP address, or other characteristics of the client request using mod_access module.
Press continue reading to understand how to do this!
To restrict access based on IP address to selected directories with apache, you need to do something like that in your VirtualHost.
Options +Indexes +FollowSymLinks
<IfVersion < 2.3 >
Deny from all
<IfVersion >= 2.3 >
Require all denied
Allow from 192.168.1.0/24
Order allow,deny: The Order directive controls the default access state and the order in which Allow and Deny directives are evaluated. The (allow,deny) Allow directives are evaluated before the Deny directives. Access is denied by default. Any client which does not match an Allow directive or does match a Deny directive will be denied access to the server.
Allow from 192.168.1.0/24: The Allow directive affects which hosts can access an area of the server (i.e. /var/www/subdomain). Access is only allowed from this network.
Save file and restart apache web server:
$ sudo service apache2 restart