Las directivas facilitadas por .htaccess
para controlar el acceso a partes específicas del servidor. El acceso se puede controlar en base al nombre de host del cliente, dirección IP u otras características de la petición del cliente, tal y como se capturan en las
variables de entorno. La directivas
Se pueden configurar simultáneamente restricciones basadas en el host y autenticación con contraseña. En ese caso, la directiva
Las directivas facilitadas por
En general, las directivas de restricción de acceso aplican a todos los métodos de acceso (GET
, PUT
, POST
, etc). Éste es el comportamiento deseado en la mayor parte de los casos. Sin embargo, es posible restringir algunos métodos, dejando otros métodos sin restricción, configurando las directivas dentro de una sección
Cuando cualquier directiva facilitada por este módulo se usa en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.
La directiva
El primer parámetro para esta directiva siempre es from
. Los siguientes parámetros pueden tomar tres formas diferentes. Si se especifica Allow from all
, entonces se permite el acceso a todos los host, dependiendo de la configuración de las directivas
Hosts cuyo nombre coincide, o acaba en estas cadenas de caracteres se les permite acceso. Solo componentes completos pueden coincidir, así que el ejemplo de arriba coincidirá con foo.example.org
pero no coincidirán con fooexample.org
. Esta configuración provocará que Apache httpd haga una doble resolución de DNS en la dirección IP del cliente, independientemente de la configuración de la directiva
Se le permite acceso a una dirección IP de un host
Los primeros 1 al 3 bytes de una dirección IP, para restricción de subred.
Una red a.b.c.d, y una máscara de red w.x.y.z. Para una restricción de subred más específica.
Similar al caso anterior, exceptuando que la máscara de red se especifica con número de bits.
Tenga en cuenta que los tres últimos ejemplos coinciden exactamente con el mismo grupo de hosts.
Direcciones y subredes IPv6 pueden especificarse como se describe aquí:
El tercer formato de parámetros para la directiva Allow from env=env-variable
, entonces se le da acceso si la variable de entorno env-variable existe. Cuando se especifica
Allow from env=!env-variable
, entonces se da acceso si la variable de entorno
env-variable no existe. El servidor facilita la configuración de variables de entorno de una manera flexible basándose en las características de la petición del cliente usando las directivas facilitadas por User-Agent
del cliente (tipo de navegador), Referer
, u otros campos de cabeceras HTTP de petición.
En este caso, navegadores con una cadena user-agent que comienza con KnockKnock/2.0
podrán acceder, y al resto se les denegará el acceso.
Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.
Esta directiva permite que se restrinja el acceso al servidor basándose en el nombre de host, dirección IP, o variables de entorno. Los parámetros para la directiva
La directiva
Tenga en cuenta que todas las directivas
Ordenar es una de las dos:
Allow,Deny
Deny,Allow
Mutual-failure
Order Allow,Deny
y ha quedado obsoleto en su favor.Las palabras clave solo pueden ser separadas por coma; no se permiten espacios en blanco entre ellas.
Filtro | Resultado Allow,Deny | Resultado Deny,Allow |
---|---|---|
Solo coincide con Allow | Petición permitida | Petición permitida |
Solo coincide con Deny | Petición denegada | Petición denegada |
No coincide | Por defecto con la segunda directiva: Denegado | Por defecto con la segunda directiva: Permitido |
Coincide con ambas Allow & Deny | Control de coincidencia final: Denegado | Control de coincidencia final: Permitido |
En el siguiente ejemplo, todos los host en el dominio example.org tienen permitido el acceso; el resto de host tienen el acceso denegado.
En el siguiente ejemplo, todos los hosts del dominio example.org tienen permitido el acceso, excepto para los host que están en el subdominio foo.example.org, a los que se le deniega el acceso. Todos los host que no coinciden con el dominio example.org tienen el acceso denegado porque el estado por defecto es
Por otro lado, si el Deny,Allow
, se permitirá el acceso a todos los host. Esto pasa porque, independientemente del orden actual de las directivas en el fichero de configuración, Allow from example.org
será interpretrado en último lugar y sobreescribirá la orden de Deny from foo.example.org
. Todos los host que no estén en el dominio example.org
también tendrán acceso porque el estado por defecto es
La presencia de una directiva
denegará todos los accesos al directorio /www
porque el estado del acceso por defecto está configurado con
La directiva .htaccess
, independientemente de la configuración de la directiva
Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.
Política de acceso si se usan ambos All
o Any
. Esta directiva solo es útil si el acceso a un área en particular se está restringiendo por usuario/contraseña y dirección de host del cliente. En este caso el comportamiento por defecto (All
) es requerir que el cliente pase la restricción de dirección de acceso y además introduce un usuario y contraseña válidos. Con la opción Any
se le garantizará acceso al cliente si pasa la restricción de host o introduce un usuario y contraseña válidos. Esto puede usarse para restringir con contraseña el acceso a un area, pero para permitir acceso a los clientes desde unas direcciones en particular sin pedirles contraseña.
Por ejemplo, si quisiera dejar entrar a personas de su red con acceso sin restricciones a una parte de su website, pero requiere que gente de fuera de su red facilite una contraseña, podría usar una configuración similar a la siguiente:
Otro uso típico de la directiva
En el ejemplo de arriba, se requiere autenticación para el directorio /var/www/private
, pero no se requerirá para el directorio /var/www/private/public
.
Desde la versión 2.0.51 las directivas
Cuando se usa cualquier directiva facilitada por este módulo en una nueva sección de configuración, no se heredará ninguna directiva facilitada por este módulo en secciones anteriores de configuración.