Negar el acceso a un sitio web con un archivo .htaccess

 

Generalidades

En este artículo se explican las distintas formas en las que se puede denegar el acceso a tu sitio web o a partes específicas del mismo usando un archivo .htaccess.

Crear un archivo .htaccess en tu servidor web de DreamHost

Los ejemplos de código de este artículo deben colocarse en el archivo .htaccess de tu sitio web. Revisa este artículo para obtener instrucciones sobre cómo crear un archivo .htaccess en tu servidor web.

Si el archivo ya existe, revisa los siguientes artículos para obtener instrucciones sobre cómo actualizarlo (según si estás utilizando un cliente FTP o SSH):

Una vez creado el archivo, puedes agregarle los ejemplos de código que aparecen a continuación.

Negar el acceso a un sitio web completo

Esta línea impide que cualquier persona vea tu sitio web. En su lugar, los visitantes verán un error 403 cuando accedan al mismo.

Require all denied

Negar el acceso a los archivos

Estos ejemplos niegan el acceso a extensiones específicas y archivos ocultos.

Negar el acceso a extensiones de archivo específicas

Esto obliga a que cualquier archivo que termine en .inc arroje un error 403 Prohibido cuando se lo visita:

<FilesMatch "\.(inc)$">
Require all denied
</FilesMatch>

Negar el acceso a archivos "ocultos"

Los nombres de archivo que comienzan con un punto se consideran "ocultos" en UNIX. Por lo general, no deseaS ofrecerlos a los visitantes. DreamHost ya no permite recuperar .htaccess y .htpasswd, pero puedeS denegar recursivamente todo acceso a todos los archivos ocultos colocando lo siguiente en un .htaccess de nivel superior:

RedirectMatch 403 /\..*$

Negar el acceso a directorios

Estos ejemplos niegan el acceso a un directorio o impiden que los usuarios vean el contenido de un directorio.

Negar el acceso a un directorio

Si tieneS un directorio llamado abcxyz que deseaS bloquear, pero puede aparecer en cualquier parte de Tu árbol de directorios, usa lo siguiente:

RewriteEngine On
RewriteRule (^|/)abcxyz(/|$) - [F]

Negar el acceso a un listado de directorio

Si no tieneS un archivo index en Tu directorio, todos tus archivos se enumeran en una lista de directorios para que cualquiera pueda verlos. El siguiente código obliga a que esta lista de directorios genere un error 403 Prohibido cuando se la visita:

Opciones -Indexes

Negar el acceso durante una hora específica del día

Este ejemplo bloquea el acceso a los archivos de un directorio durante un momento específico del día.

RewriteEngine On
# If the hour is 16 (4 PM)
RewriteCond %{TIME_HOUR} ^16$
# Then deny all access
RewriteRule ^.*$ - [F,L]

Si alguien visita el directorio en cualquier momento entre las 16:00 y las 16:59, se genera un error 500 Internal Server. También puedes especificar varias horas:

RewriteEngine On
# Multiple hour blocks
# If the hour is 4 PM or 5 PM or 8 AM
RewriteCond %{TIME_HOUR} ^16|17|08$
# Then deny all access
RewriteRule ^.*$ - [F,L]

Negar el acceso a IPs

Estos ejemplos bloquean una única IP así como un rango de direcciones IP.

Negar el acceso desde direcciones IP específicas

Este ejemplo niega el acceso a una única dirección IP:

<RequireAll>
Require all granted
Require not ip 173.236.241.100
</RequireAll>

Cuando el usuario intenta conectarse a tu sitio desde esa IP específica, ve una página 403 Prohibida. Si deseas bloquear un bloque completo de IP, simplemente deja el último octeto desactivado. Por ejemplo:

<RequireAll>
Require all granted
Require not ip 173.236.241.
</RequireAll>

Esto niega el acceso a cualquier persona que utilice una dirección IP en el rango de 173.236.241.0 hasta 173.236.241.255. Revisa esta herramienta en línea que genera automáticamente un rango de direcciones IP para ti.

Permitir el acceso desde una IP específica

El siguiente código bloquea a todos excepto a una dirección IP específica. Puedes usarlo para permitir que solo tú puedas ver tu sitio y denegar el acceso a todos los demás.

<RequireAny>
Require all denied
Require ip <YOUR_IP_ADDRESS>
</RequireAny>

Negar el acceso desde un dominio específico

Esto niega el acceso a cualquier persona que se conecte a Tu sitio desde www.example.com.

<RequireAll>
  Require all granted
  Require not host example.com
</RequireAll>

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?