Laboratorio: Proteger ruta virtual mediante Apache

En otras ocasiones hemos comentado como proteger directorios mediante Apache, incluyendo en el .htaccess los comandos necesarios para ello. El problema viene cuando en vez de proteger una ruta física, queremos proteger un URL virtual, entendiendo URL virtual, aquella que no existe físicamente y que mediante Apache redireccionamos a un script en concreto, por ejemplo:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule ^clientes index.php?redirect=clientes [QSA,L]

En este caso, si accedemos a http://servidor/cliente, realmente no estaremos accediendo a una ruta física, pero puede ser que queramos que esta url no sea accesible para todo el mundo.

Para proteger una URL virtual debemos usar el comando Location, el cual debemos incluirlo en el httpd.conf o en un dominio virtual, y para protegerlo deberemos usar:

<Location /client>
AuthType Basic
AuthName "Acceso Protegido"
AuthUserFile [ruta .htpasswd]
AuthGroupFile /dev/null
order allow,deny
allow from all
deny from none
require valid-user
</Location>