Proteger una Location, LocationMatch o VirtualHost en Apache es muy similar a proteger una carpeta tal y como expliqué en “Proteger con contraseña una carpeta en Apache (XAMPP y Mac OS X)“. La primera parte es exactamente igual, hay que crear el fichero con el usuario y la contraseña que queremos usar mediante el comando htpasswd
command. Es importante no dejar este fichero en algún lugar del servidor donde pueda ser descargado.
/Applications/XAMPP/xamppfiles/bin/htpasswd -c /Applications/XAMPP/etc/.htpasswd admin New password: Re-type new password: Adding password for user admin
Luego ir al fichero de configuración con nuestra etiqueta , and/or y añadir las mismas líneas que usamos para proteger una carpeta con el fichero .htaccess
. Por ejemplo para proteger las localizaciones especiales de XAMPP abriremos el fichero /Applications/XAMPP/xamppfiles/etc/extra/httpd-xampp.conf
y añadiremos las siguientes líneas en negrita:
AuthName "Protected Area" AuthType Basic AuthUserFile /Applications/XAMPP/xamppfiles/etc/.htpasswd Require valid-user Order deny,allow Deny from all Allow from ::1 127.0.0.0/8 \ fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \ fe80::/10 169.254.0.0/16 ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
Para proteger un VirtualHost abrir el fichero /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
y añadir las mismas líneas dentro del VirtualHost que queramos proteger. Por ejemplo:
AuthName "Protected Area" AuthType Basic AuthUserFile /Applications/XAMPP/xamppfiles/etc/.htpasswd Require valid-user ServerAdmin webmaster DocumentRoot "/Users/user/Documents/Webs/test.local" ServerName test.local ServerAlias test.local ErrorLog "logs/test.local-error_log" CustomLog "logs/test.local-access_log" common DirectoryIndex index.php index.html index.htm #IndexOptions +FancyIndexing NameWidth=* #Options Includes FollowSymLinks Indexes AllowOverride All Order allow,deny Allow from all