¿Cómo niego el acceso a mi sitio con un archivo .htaccess?

Crear un archivo .htaccess en tu servidor web DreamHost

Da click en el siguiente artículo para ver instrucciones de como crear un archivo .htaccess en tu servidor web:

Si el archivo ya existe, da click en los siguientes artículos para ver instrucciones de como actualizarlo (dependiendo si estás usando FTP o SSH):

Negar acceso a archivos

Rechazar acceso a extensiones de archivo específicos

El siguiente código fuerza a cualquier archivo terminado en .inc a dar el error 404 cuando sea visitado:

<Files ~ "\.inc$">  
Order Allow,Deny
Deny from All
</Files>

Negar acceso a archivos "escondidos"

Los archivos que empiezan con un punto son considerados "escondidos" por UNIX. Usualmente, no quieres darlos a ver a los visitantes.

DreamHost deshabilita el acceso a '.htaccess' y '.htpasswd', pero puedes recursivamente negar todos los accesos a todos los archivos poniendo el siguiente .htaccess dentro del nivel más alto.

RedirectMatch 403 /\..*$

Negar acceso a carpetas

Negar acceso a listar el directorio

Si no tienes un archivo index en tu directorio, todos tus archivos son listados en una lista de directorio para que que lo vea cualquiera. El siguiente código fuerza a esta lista a dar un error 404 Forbidden cuando lo visiten:

Options -Indexes

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

Si deseas bloquear el acceso a archivos en un directorio durante un momento específico en el día, entonces agrega el siguiente código a tu archivo de .htaccess:

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 a cualquier hora entre las 4:00 – 4:59 pm, un error 500 Internal server error se mostrará. Tu puedes especificar multiples horas también.

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 acceso a un directorio

Si tienes un directorio llamado "blah" que quieres bloquear, pero puede aparecer en cualquier lado de tu directorio, usa el siguiente código:

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

Negar acceso de IPs específicas

Si tienes problemas con ciertos visitantes de tu sitio web, puedes rechazarlos fácilmente. Hay dos maneras diferentes de rechazar visitantes:

  • Usando su dirección IP, o
  • El dominio del que están visitando.

He aquí un ejemplo que niega un usuario por su dirección IP:

deny from 173.236.241.100

Cuando el usuario trata de conectar tu sitio desde esa IP específica, ellos verán un error 403 Forbidden. Si quieres bloquear un bloque entero de IPs, solo deja el último octeto por fuera. Por ejemplo:

deny from 173.236.241.

Esto niega acceso a cualquiera que tenga esa IP en el rango de 173.236.241.0 a 173.236.241.255.

El siguiente link es una herramienta online útil que genera automáticamente rangos de IP:

Permitir acceso a una IP específica

Si necesitas negar acceso a tu sitio a todos pero poder seguir accediendo con tu IP u otra específica para visitarlo, usa esto:

order deny,allow
deny from all
allow from <YOUR_IP_ADDRESS>

Negar acceso a un dominio específico

Esto niega acceso a cualquiera que se conecte a tu sitio desde www.example.com. Si alguien da click en un link en ejemplo.com que redireccione a tu sitio, ellos verán un error 403 Forbidden error:

SetEnvIfNoCase Referer "example.com" bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer

Este ejemplo arroja un error 500 Internal Server Error para cualquiera enlazando de example.com:

RewriteEngine on
RewriteCond %{HTTP_REFERER} example\.com [NC,OR]
RewriteRule .* - [F]

El siguiente ejemplo redirecciona a cualquier visitante conectando de ejemplo.com a google.com:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://example.com/
RewriteRule /* http://www.google.com [R,L]

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.