Seguridad Firewall Version en ingles

Articulo de ayuda

Cómo Bloquear Direcciones IP con .htaccess (Paso a Paso)

Aprende a bloquear una o varias direcciones IP desde el archivo .htaccess en Apache, con ejemplos para IPs concretas, rangos CIDR y carpetas o archivos individuales.

Publicado: 14/7/2026 Actualizado: 14/7/2026

Introducción

El archivo .htaccess permite aplicar reglas de acceso a una web sin tocar la configuración principal del servidor. Una de sus funciones más útiles es bloquear una dirección IP que esté realizando intentos de acceso no autorizados, enviando spam, consumiendo recursos o generando peticiones sospechosas.

En esta guía verás cómo bloquear una IP con .htaccess, bloquear varias direcciones, restringir rangos completos y proteger únicamente una carpeta o un archivo concreto.

Importante: antes de modificar el archivo .htaccess, descarga una copia de seguridad. Un error de sintaxis puede provocar un 500 Internal Server Error en la web.

Dónde se encuentra el archivo .htaccess

Normalmente, el archivo .htaccess se encuentra en la carpeta principal de la web, que suele llamarse public_html.

Para localizarlo en cPanel o DirectAdmin:

  1. Accede al panel de control de tu hosting.
  2. Abre el Administrador de archivos.
  3. Entra en la carpeta public_html del dominio.
  4. Activa la opción para mostrar archivos ocultos, si el archivo no aparece.
  5. Localiza y edita el archivo .htaccess.

Si no existe, puedes crear un archivo nuevo llamado exactamente .htaccess. El punto inicial forma parte del nombre.

Cómo bloquear una IP en Apache 2.4

Apache 2.4 utiliza la directiva Require para controlar el acceso por dirección IP. Añade este código al archivo .htaccess:

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

Sustituye 203.0.113.10 por la IP que deseas bloquear. La primera línea permite el acceso general y la segunda excluye la dirección indicada. Las visitas desde esa IP recibirán normalmente un error 403 Forbidden.

No utilices Require not ip por sí solo. La negación debe combinarse con una condición positiva, como Require all granted, dentro de <RequireAll>.

Cómo bloquear varias direcciones IP

Para bloquear varias IP, añade una línea Require not ip por cada dirección:

<RequireAll>
    Require all granted
    Require not ip 203.0.113.10
    Require not ip 198.51.100.25
    Require not ip 192.0.2.80
</RequireAll>

Es recomendable escribir una breve anotación para recordar el motivo del bloqueo:

<RequireAll>
    Require all granted

    # IP bloqueada por intentos de acceso repetidos
    Require not ip 203.0.113.10
</RequireAll>

Las líneas que comienzan con # son comentarios y Apache no las ejecuta.

Cómo bloquear un rango de direcciones IP

Si las peticiones no deseadas proceden de la misma red, puedes bloquearla con notación CIDR:

<RequireAll>
    Require all granted
    Require not ip 203.0.113.0/24
</RequireAll>

En este ejemplo se bloquea el rango entre 203.0.113.0 y 203.0.113.255. También puedes bloquear una red IPv6:

<RequireAll>
    Require all granted
    Require not ip 2001:db8:1234::/48
</RequireAll>

Bloquear un rango afecta a muchas direcciones a la vez. Revisa bien la red antes de guardar el cambio para no bloquear también a visitantes legítimos.

Cómo bloquear una IP solo en una carpeta

Las reglas de un .htaccess afectan a la carpeta donde está y, normalmente, a sus subcarpetas. Para bloquear una IP únicamente en una sección concreta:

  1. Accede a la carpeta que quieres proteger.
  2. Crea o edita el archivo .htaccess dentro de esa carpeta.
  3. Añade la regla de bloqueo:
<RequireAll>
    Require all granted
    Require not ip 203.0.113.10
</RequireAll>

Así, la IP podrá visitar el resto de la web, pero no el contenido protegido por ese .htaccess.

Cómo bloquear una IP solo para un archivo

También puedes restringir el acceso a un archivo concreto, por ejemplo una página de login:

<Files "wp-login.php">
    <RequireAll>
        Require all granted
        Require not ip 203.0.113.10
    </RequireAll>
</Files>

La dirección indicada quedará bloqueada únicamente al intentar abrir wp-login.php. Puedes sustituir ese nombre por otro archivo, como admin.php o acceso.php.

Cómo permitir el acceso solo a una IP

Si necesitas cerrar una sección al público y permitir el acceso únicamente desde una dirección concreta, utiliza:

Require ip 203.0.113.10

Esta configuración es útil para áreas privadas, entornos de pruebas o herramientas internas. Antes de aplicarla, comprueba que tu conexión usa una IP fija: si tu proveedor de Internet cambia tu IP pública, podrías perder el acceso tú mismo.

Sintaxis antigua para Apache 2.2

En configuraciones antiguas se usaban las directivas Order, Allow y Deny:

Order Allow,Deny
Allow from all
Deny from 203.0.113.10
Deny from 198.51.100.25

Estas directivas están obsoletas en Apache 2.4. Utiliza preferentemente la sintaxis con Require, y no mezcles ambos formatos en el mismo bloque: puede producir resultados inesperados.

Cómo comprobar si el bloqueo funciona

Después de guardar el archivo:

  1. Abre la web desde una conexión que use la IP bloqueada.
  2. Comprueba que el servidor responde con 403 Forbidden.
  3. Revisa que la web siga funcionando desde otras conexiones.
  4. Consulta el registro de errores si aparece un error 500.

Para probar desde otra IP puedes usar, por ejemplo, la conexión de datos de un móvil en lugar del wifi habitual.

Problemas frecuentes

Aparece un error 500 Internal Server Error

Suele indicar que Apache no reconoce alguna directiva o que hay un fallo de sintaxis. Para recuperar la web:

  1. Accede al Administrador de archivos o por FTP.
  2. Abre el archivo .htaccess.
  3. Elimina o comenta las líneas que acabas de añadir.
  4. Guarda el archivo y vuelve a cargar la página.

Comprueba especialmente que las etiquetas <RequireAll> y </RequireAll> estén correctamente abiertas y cerradas.

La IP sigue accediendo

Revisa lo siguiente:

  • La IP introducida puede no ser la correcta.
  • El .htaccess puede estar en una carpeta distinta.
  • El servidor puede no tener habilitada la lectura de reglas .htaccess.
  • La web puede estar detrás de un proxy, balanceador o CDN.
  • Puede que estés viendo una página en caché.
  • La IP del visitante puede haber cambiado si usa una IP dinámica.

Si hay un proxy delante del servidor, Apache puede detectar la IP del intermediario en lugar de la dirección real del visitante. En ese caso, contacta con soporte antes de bloquear rangos completos.

Me he bloqueado a mí mismo

Accede al .htaccess desde el Administrador de archivos o por FTP y elimina la regla que contiene tu IP. Si bloqueaste un rango, sustituye temporalmente el archivo por la copia de seguridad que hiciste antes del cambio.

Si te has quedado sin acceso al panel de control (no solo a la web), revisa nuestro artículo sobre qué hacer si el servidor ha bloqueado tu IP.

El bloqueo afecta a usuarios legítimos

Suele ocurrir al bloquear una red completa. Elimina el rango y bloquea solo las direcciones concretas que estén generando el problema.

Consejos de seguridad

  • Confirma la IP en los registros de acceso antes de bloquearla.
  • Guarda una copia del .htaccess antes de cada modificación.
  • Usa rangos CIDR solo cuando sepas exactamente qué direcciones incluyen.
  • Revisa periódicamente los bloqueos antiguos.
  • No uses .htaccess como única medida frente a ataques intensivos o distribuidos: el firewall del servidor ya filtra buena parte de ese tráfico automáticamente.
  • Mantén la web, sus plugins, temas y aplicaciones actualizados.
  • Conserva backups recientes para poder restaurar el sitio ante cualquier incidencia.

El bloqueo mediante .htaccess afecta al acceso web gestionado por Apache. No bloquea automáticamente otros servicios como correo, FTP, SSH o el panel de control.

Si recibes peticiones maliciosas desde muchas direcciones distintas, bloquearlas una a una puede no ser suficiente. En ese caso conviene revisar la seguridad de la web y confirmar que tu plan de hosting tiene los recursos adecuados para su tráfico real.

Preguntas frecuentes

¿Puedo bloquear una IP sin acceder a la configuración del servidor?

Sí. Si tu hosting permite el uso de .htaccess (como ocurre en todos los planes de miHosting), puedes aplicar el bloqueo desde el Administrador de archivos o por FTP.

¿El usuario bloqueado verá algún mensaje?

Normalmente recibirá una respuesta 403 Forbidden, que indica que el servidor ha rechazado el acceso.

¿Puedo bloquear una dirección IPv6?

Sí. Apache 2.4 permite usar direcciones IPv4, IPv6 y redes expresadas en notación CIDR.

¿Puedo bloquear un país completo con .htaccess?

No es recomendable hacerlo con una lista manual de rangos IP: las asignaciones cambian y una configuración incompleta puede bloquear a usuarios legítimos. Para restricciones geográficas es preferible una herramienta de seguridad pensada para ese fin.

¿Bloquear una IP reduce el consumo de recursos?

Puede reducir las peticiones desde esa dirección, pero el servidor sigue teniendo que procesar la conexión y comprobar la regla. Ante ataques grandes o distribuidos hacen falta medidas adicionales a nivel de firewall o infraestructura.

¿Qué ocurre si la IP del visitante cambia?

El bloqueo deja de afectarle. Muchas conexiones residenciales y móviles usan IPs dinámicas que cambian periódicamente.

Conclusión

Para bloquear una IP con .htaccess en Apache 2.4, usa un bloque <RequireAll> que permita el acceso general y excluya la dirección con Require not ip.

Haz siempre una copia de seguridad antes de modificar el archivo y evita bloquear rangos completos sin comprobarlos antes. Si aparece un error 500, pierdes el acceso o el bloqueo no funciona, restaura el archivo anterior y contacta con el equipo de soporte de miHosting para revisar la configuración.