🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Bloquear IPs no deseadas en PrestaShop usando .htaccess

Actualizado el 28 de septiembre de 2025

¿Por qué necesitas bloquear IPs en PrestaShop?

La seguridad de tu tienda online es una de las prioridades más importantes. Cada día, bots maliciosos, scrapers y atacantes intentan acceder a tu panel de administración, probar contraseñas o ralentizar tu servidor con peticiones masivas. Si has detectado tráfico sospechoso en tus estadísticas, intentos de acceso fallidos o simplemente quieres blindar tu negocio, aprender a bloquear IPs en PrestaShop es una habilidad básica que te ahorrará muchos dolores de cabeza.

La buena noticia es que no necesitas ser un experto en servidores para hacerlo. PrestaShop funciona sobre Apache, y Apache tiene un archivo mágico llamado .htaccess. Este archivo te permite controlar quién entra y quién no a tu tienda. En esta guía te voy a enseñar paso a paso cómo usar el htaccess PrestaShop para bloquear direcciones IP no deseadas, con ejemplos listos para copiar y pegar.

¿Qué es el archivo .htaccess y por qué es tan importante?

El archivo .htaccess es un archivo de configuración que se encuentra en la raíz de tu instalación de PrestaShop (normalmente en la carpeta public_html, htdocs o www). Apache lo lee en cada petición que recibe tu servidor, y te permite modificar el comportamiento del servidor sin tocar la configuración global.

Para el caso que nos ocupa, el .htaccess es la herramienta perfecta para bloquear IPs en PrestaShop porque:

  • Se aplica de forma inmediata, sin necesidad de reiniciar el servidor.
  • Es compatible con la mayoría de hosting compartidos (los más económicos y comunes).
  • Puedes bloquear IPs individuales o rangos completos.
  • También puedes bloquear por país, por navegador o por agente de usuario, aunque eso lo veremos más adelante.
  • Si te equivocas, es muy fácil revertir el cambio (siempre que tengas una copia de seguridad).

Antes de empezar, quiero darte un consejo de oro: siempre haz una copia de seguridad de tu .htaccess original. Puedes descargarlo por FTP o desde el administrador de archivos de tu hosting. Si algo sale mal, solo tendrás que subir la copia y todo volverá a la normalidad.

[WARNING]
Si tu tienda usa un CDN (como Cloudflare), las IP que verás en tus logs serán las de Cloudflare, no las de los visitantes reales. En ese caso, el bloqueo en .htaccess puede no funcionar como esperas. Te recomiendo bloquear a nivel de CDN o usar los módulos de seguridad de PrestaShop.

Cómo encontrar las IPs que necesitas bloquear

Antes de bloquear, tienes que saber quién te está atacando. PrestaShop guarda registros de acceso en el servidor. Si tienes acceso a cPanel, busca la sección "Registros de errores" o "Raw Access Logs". También puedes usar el módulo de estadísticas de PrestaShop para ver tráfico sospechoso.

Señales típicas de que necesitas bloquear IPs en PrestaShop:

  • Muchos intentos de acceso a /admin o /employee con contraseñas incorrectas.
  • Peticiones repetidas a la misma URL en milisegundos (bots).
  • Tráfico proveniente de países donde no vendes ni tienes clientes.
  • Errores 404 masivos desde la misma IP.
  • Comentarios spam en tu blog o formularios.

Cuando tengas la IP sospechosa (o un rango), anótala. Normalmente verás algo como 192.168.1.1 o una lista completa en tus logs. También puedes usar herramientas online como "What Is My IP" para verificar si una IP es de un centro de datos (más probable que sea bot) o de un ISP residencial.

Método 1: Bloquear una IP individual en .htaccess

Este es el método más sencillo y directo. Solo necesitas editar el archivo .htaccess de la raíz de PrestaShop.

Paso 1: Accede a tu servidor

Puedes usar el administrador de archivos de tu hosting (cPanel, Plesk, o Syspanel si tu proveedor usa ese panel, que se accede por el puerto 2106) o conectarte por FTP con un cliente como FileZilla.

Paso 2: Localiza el archivo .htaccess

En la raíz de tu tienda, busca un archivo llamado .htaccess. Si no lo ves, activa la opción "mostrar archivos ocultos" en tu cliente FTP o en el administrador de archivos.

Paso 3: Edita el archivo

Abre el archivo con un editor de texto plano (nada de Word). Al final del archivo, añade este bloque:

# Bloquear IP individual
<RequireAll>
    Require all granted
    Require not ip 123.456.789.0
</RequireAll>

Sustituye 123.456.789.0 por la IP que quieras bloquear. Guarda el archivo y sube los cambios si estás por FTP. Listo, esa IP ya no podrá acceder a tu tienda.

Pero espera, este método tiene un problema: si tu PrestaShop no está configurado para usar mod_authz_core (algo común en Apache 2.4), puede que te dé error. La alternativa clásica y más compatible es usar mod_rewrite:

# Bloquear IP individual con mod_rewrite
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.0$
RewriteRule ^ - [F,L]

Esta sintaxis es más universal y funciona en la mayoría de servidores. Fíjate que las IPs se escriben con las comas escapadas con \. para que se interpreten como puntos literales.

[TIP]
Si no estás seguro de qué versión de Apache usa tu hosting, usa el método con RewriteEngine. Es el más compatible y el que verás en la mayoría de tutoriales de seguridad PrestaShop.

Método 2: Bloquear un rango de IPs completo

A veces no es una sola IP, sino un rango entero. Por ejemplo, un atacante puede estar usando una subred completa de un centro de datos. Con .htaccess puedes bloquear rangos fácilmente.

Bloquear un rango C (último número variable)

Si quieres bloquear todas las IPs desde 123.456.789.0 hasta 123.456.789.255, usa:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.
RewriteRule ^ - [F,L]

Observa que el último octeto no se especifica, solo termina con un punto. Esto bloquea todas las IPs que empiecen por 123.456.789..

Bloquear un rango con máscara de subred

Si necesitas más precisión, puedes usar el formato CIDR. Por ejemplo, para bloquear 123.456.0.0 a 123.456.255.255 (equivalente a /16):

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.456\.
RewriteRule ^ - [F,L]

Para rangos más complejos, puedes usar mod_rewrite con expresiones regulares, pero para la mayoría de casos, bloquear los dos o tres primeros octetos es suficiente.

Método 3: Bloquear IPs desde el panel de administración de PrestaShop

Si no te sientes cómodo editando archivos, PrestaShop tiene una opción nativa. Ve a Preferencias > General y busca la sección "Restricciones de IP". Aquí puedes añadir IPs o rangos que se bloquearán automáticamente.

Sin embargo, esta opción solo funciona a nivel de aplicación, no de servidor. Es decir, la petición llega a tu servidor, se procesa, y luego PrestaShop decide bloquearla. Esto consume recursos. El bloqueo en .htaccess es mucho más eficiente porque Apache corta la petición antes de que llegue a PrestaShop.

[INFO]
Para una protección real, combina ambas cosas: usa .htaccess para bloquear IPs conocidas y maliciosas, y la restricción nativa de PrestaShop para gestionar listas temporales o por país desde el panel.

Cómo bloquear países completos (con GeoIP)

Si recibes muchos ataques desde un país concreto (por ejemplo, Rusia o China) y no vendes ahí, puedes bloquear el país entero. Esto se hace con el módulo GeoIP de Apache, pero no todos los hostings lo tienen activado.

Una alternativa sin GeoIP es usar una lista de rangos IP de ese país (puedes descargarlas de sitios como ip2location). Luego, en tu .htaccess, añades todos los rangos. Es un proceso más tedioso, pero funciona.

# Bloquear IPs de un país (ejemplo ficticio)
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^1\.0\.0\. [OR]
RewriteCond %{REMOTE_ADDR} ^1\.0\.1\. [OR]
RewriteCond %{REMOTE_ADDR} ^2\.20\.0\.
RewriteRule ^ - [F,L]

Para simplificar esto, muchos usuarios optan por módulos de pago en el marketplace de PrestaShop que integran GeoIP y bloqueo por país sin tocar el .htaccess.

Cómo bloquear agentes de usuario (bots y rastreadores)

A veces, el ataque no viene de una IP concreta sino de un bot que rota IPs. En ese caso, puedes bloquear por "User Agent", que es la cadena de texto que el navegador o bot envía al servidor.

# Bloquear un bot específico
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SemrushBot|MJ12bot) [NC]
RewriteRule ^ - [F,L]

Sustituye los nombres de bots por los que quieras bloquear. Esto es muy útil para seguridad PrestaShop y para ahorrar ancho de banda.

Errores comunes y cómo solucionarlos

Error 500 al modificar .htaccess

Si al guardar el archivo te aparece un error 500, es que la sintaxis no es correcta. Revisa que no haya espacios en blanco extraños, que las líneas no estén comentadas sin querer (con #) y que el archivo se haya subido en modo ASCII (no binario).

El bloqueo no funciona

Si has añadido la regla y la IP sigue entrando, puede ser por:

  • Tu servidor usa Nginx en lugar de Apache (entonces .htaccess no se lee).
  • Hay un .htaccess en un subdirectorio que anula el tuyo.
  • El CDN está enmascarando la IP real.
  • La IP que estás bloqueando no es la correcta (revisa los logs).

Quiero desbloquear una IP

Solo tienes que eliminar o comentar la línea que añadiste. Si usas # al principio de la línea, no se ejecutará.

# RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.$
# RewriteRule ^ - [F,L]

Consejos extra para proteger tu PrestaShop

Bloquear IPs es solo una capa de protección. Aquí tienes más consejos para reforzar tu tienda:

  • Cambia la URL de administración: En PrestaShop 1.7 y 8, puedes cambiar la carpeta /admin por algo único.
  • Activa la autenticación de dos factores (2FA) para el panel de administración.
  • Mantén PrestaShop y los módulos actualizados: Los ataques suelen aprovechar vulnerabilidades conocidas.
  • Usa contraseñas fuertes y cámbialas periódicamente.
  • Instala un módulo de seguridad como "Security & Access" o "IP Blocker" de prestashop.com.
  • Activa el firewall de tu hosting si lo ofrece. En Syspanel (acceso por el puerto 2106), puedes gestionar reglas de firewall básicas.

[WARNING]
Nunca bloquees tu propia IP. Si te equivocas, perderás el acceso a tu tienda. Siempre verifica que tu IP actual no esté en la lista antes de guardar. Si te bloqueas, tendrás que acceder por FTP y eliminar la regla.

Preguntas frecuentes (FAQ)

¿Puedo bloquear IPs en PrestaShop sin tocar .htaccess?

Sí, desde el panel de administración en Preferencias > General > Restricciones de IP. Es más fácil pero menos eficiente.

¿Cuántas IPs puedo bloquear en .htaccess?

No hay un límite técnico, pero un archivo demasiado grande ralentiza el servidor. Si necesitas bloquear cientos de IPs, considera usar un firewall a nivel de servidor o un módulo.

¿El bloqueo en .htaccess afecta al SEO?

No. Bloquear IPs maliciosas no afecta a tu posicionamiento. Eso sí, no bloquees a los bots de Google (Googlebot). Si lo haces, tu tienda podría desaparecer de los resultados de búsqueda.

¿Cómo sé si mi hosting usa Apache o Nginx?

Puedes crear un archivo test.php con el contenido <?php echo 'OK'; ?> y acceder a él. Si funciona, tienes PHP y Apache. También puedes preguntar a tu proveedor de hosting.

¿Puedo bloquear IPs desde el móvil?

Sí, si tu proveedor de hosting tiene una app o si accedes al administrador de archivos desde el navegador del móvil. No es cómodo, pero se puede.

Conclusión

Bloquear IPs no deseadas en PrestaShop usando .htaccess es una de las tareas más efectivas y simples que puedes hacer para proteger tu negocio online. Con las reglas que te he mostrado, podrás cortar el acceso a atacantes, bots y rastreadores en cuestión de minutos. Recuerda siempre hacer una copia de seguridad del archivo original, probar los cambios y monitorizar tus logs para ajustar las listas.

La seguridad PrestaShop no es un lujo, es una necesidad. Cada día que dejas una puerta abierta, alguien puede estar intentando entrar. Con esta guía, ya tienes las herramientas básicas para cerrar esas puertas. Si tienes dudas, no dudes en preguntar a tu hosting o buscar ayuda en los foros oficiales de PrestaShop.

Y recuerda: si tu proveedor usa Syspanel, el acceso al panel de control es a través del puerto 2106, y desde ahí también puedes gestionar algunas opciones de seguridad a nivel de servidor. ¡Toma el control de tu tienda y duerme tranquilo!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel