Guías y tutoriales

Cientos de tutoriales y guías paso a paso cuidadosamente escritas por nuestro equipo de soporte.

Bloquear accesos web mediante .htaccess

En este manual te explicaremos como negar el acceso a alguien en nuestro sitio web mediante la edición del fichero .htaccess.

Conéctate vía FTP al directorio "/datos/web/" y edita el archivo ".htaccess".

info El fichero ".htaccess" se encuentra oculto. Si no lo ves, deberás activar la opción para ver ficheros ocultos en tu cliente FTP. También cabe la posibilidad de que debas crearlo.

A continuación, añade las líneas de código que especificamos según las necesidades de tu página web.

Negar el acceso a una IP en concreto

Con este primer código, podrás bloquear el acceso a un usuario por su dirección IP concreta. De esta forma, cuando el usuario quiera conectarse, se le mostrará un error 403 Forbidden:

deny from 173.236.241.100

Es posible que requieras bloquear un bloque entero de IP (no lo recomendamos). Para hacerlo debes dejar el último octeto sin especificar, de esta forma niegas el acceso a cualquiera que tenga esa IP en el rango de 173.236.241.0 a 173.236.241.255:

deny from 173.236.241.

Permitir el acceso solo a una IP en concreto

Si por el contrario, lo que necesitas es que nadie pueda acceder a tu web, pero tú o alguien debe poder verla para trabajar en ella, puedes bloquear el acceso a todas las IPs menos a una en concreto con el siguiente código:

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

Negar el acceso a un dominio concreto

Con esto haremos que cualquiera que se conecte a tu sitio desde un dominio concreto, por ejemplo "www.swmanuales.com", no pueda acceder. Hay tres formas de llevarlo a cabo:

403 forbidden

Si alguien hace clic en un enlace en swmanuales.com que redireccione a tu sitio, ellos verán un error 403 Forbidden error:

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

500 internal server error

Se mostrará un error 500 Internal Server Error para denegar cualquier petición web que venga redireccionada desde el dominio swmanuales.com:

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

Redirección a google.com

Con este código se redirecciona a cualquier visitante de la URL http://swmanuales.com hacia la URL http://www.google.com:

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

Negar acceso a archivos

Con este código vamos a negar el acceso a cualquier archivo con la extensión que indiquemos. En lugar de visualizar el contenido, se verá un error 404. En el ejemplo, el código esfuerza a cualquier archivo terminado en .inc a dar el error 403 cuando sea visitado:

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

Negar acceso a archivos "escondidos"

Los archivos escondidos como el caso del .htaccess, son aquellos que empiezan con un punto ".". Estos tipos de archivos no son visibles para los visitantes. Puedes recursivamente negar todos los accesos a todos los archivos poniendo el siguiente código en la parte superior de tu .htaccess:

RedirectMatch 403 /\..*$

Negar acceso a directorios

Si no tienes un archivo índex en tu directorio, todos tus archivos son listados en una lista de directorio para que que lo vea cualquiera. Habitualmente, siempre tenemos un archivo "index.html o index.php" en nuestro servicio, pero podemos necesitar negar el acceso por temas de seguridad. Puedes negar el acceso a una carpeta o directorio concreto con el siguiente código para que cuando un visitante acceda a la lista de directorios dé un error 404 Forbidden:

Options -Indexes

Negar acceso a un directorio concreto

Si tienes un directorio concreto al que no quieres que accedan los usuarios, debes usar el siguiente código. Nosotros pondremos por ejemplo que el directorio que queremos bloquear se llame "swmanuales":

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

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

De esta forma negaremos el acceso a nuestra web durante una hora específica del día. Podemos especificar una o varias horas.

Ejemplo, especificando que no se permita el acceso de 15:00 a 15:59:

RewriteEngine On
# Si la hora es 15 (3 PM)
RewriteCond %{TIME_HOUR} ^15$
# Negar todos los accesos
RewriteRule ^.*$ - [F,L]

Ejemplo, especificando que no se permita el acceso de 15:00 a 16:59 y de 6:00 a 7:00:

RewriteEngine On
# Si la hora es 3 PM o 4 PM o 6 AM
RewriteCond %{TIME_HOUR} ^15|16|06$
# Negar todos los accesos
RewriteRule ^.*$ - [F,L]