Google
Web dns.bdat.net

Configuraciones de directorios en Apache

Cada directorio al que Apache tenga acceso se puede configurar para satisfacer los servicios y características que se permiten o no en dicho directorio y en sus subdirectorios.

Valor predeterminado

Primero configuramos el predeterminado con un conjunto de características muy restrictivas:

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

Esta configuración garantiza el mayor rendimiento ya que el servidor, por un lado no tiene que comprobar si un fichero es un enlace simbólico y por otro no tiene que leer ficheros .htaccess.

Si queremos modificar estas características, lo haremos más adelante para directorios concretos.

Directorio raíz

El valor de directorio tendría que ser el mismo que indicamos en la directiva DocumentRoot.

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Directorios personales

Vemos un ejemplo de configuración del directorio personal para que esté restringido como sólo lectura:

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

Directorios restingidos

Podemos restringir el acceso a ciertos directorios mediante clave. Para esto tendremos que configurar el directorio adecuadamente. Lo vemos mediante un ejemplo. Queremos que para acceder al directorio /var/www/html/privado el navegador solicite una contraseña.

En primer lugar tendremos que indicarle a apache que busque en ese directorio un fichero .htaccess. Esto lo haremos indicando AllowOverride AuthConfig:

<Directory /var/www/html/privado>
AllowOverride AuthConfig
<Directory

En segundo lugar creamos un fichero llamado .htaccess en el directorio /var/www/html/privado con el siguiente contenido:

AuthName "Acceso restringido"
AuthUserFile /var/www/.htpasswd
AuthType Basic
require valid-user

El fichero .htpasswd es conveniente que esté fuera del árbol de directorios accesibles por los clientes del servidor web.

Por último creamos el fichero .htpasswd a la vez que damos de alta un usuario:

htpasswd -c /var/www/.htpasswd usuario

Podemos dar de alta más usuario ejecutando:

htpasswd
/var/www/.htpasswd usuario

en este caso sin la opción -c que se utiliza para crear el fichero.