El problema
Al acceder directamente por URL a archivos estáticos dentro de la carpeta del theme de tu PrestaShop, por ejemplo:
/themes/mitema/assets/fonts/fuente.woff2
/themes/mitema/assets/css/theme.css
El servidor devuelve un error 403 Forbidden, aunque:
Los archivos existen en el servidor.
Los permisos son correctos (644 para archivos y 755 para carpetas).
El archivo .htaccess principal de PrestaShop es correcto.
La protección Hotlink está desactivada.
Es habitual pensar que el bloqueo lo provoca ModSecurity, Imunify360 o el cortafuegos del servidor, pero en este caso concreto la causa suele estar en el propio PrestaShop.
La causa: un .htaccess dentro de la carpeta themes
PrestaShop incluye por defecto un archivo .htaccess adicional dentro de la carpeta /themes/ (ruta public_html/themes/.htaccess). Este archivo contiene reglas de seguridad que prohíben el acceso directo por URL a archivos con ciertas extensiones dentro de los themes.
Estas reglas existen por seguridad, para evitar que el contenido de los themes sea accesible directamente desde el navegador. Sin embargo, si tu theme referencia recursos (por ejemplo fuentes .woff2 desde el CSS) que el navegador necesita descargar directamente, esas peticiones pueden verse bloqueadas con un 403.
Cómo confirmarlo
Abre el Administrador de Archivos de cPanel (o conéctate por FTP).
Ve a la carpeta public_html/themes/ y localiza el archivo .htaccess (activa la opción de mostrar archivos ocultos).
Revisa su contenido: verás directivas que deniegan el acceso a determinadas extensiones de archivo.
Opciones de solución
Opción recomendada: mantener las reglas de seguridad y servir esos recursos desde otra ubicación no bloqueada (por ejemplo, mover las fuentes a una carpeta de assets pública y actualizar la referencia en el CSS).
Opción alternativa: editar el .htaccess de /themes/ para permitir extensiones concretas (css, js, woff2…). Es tu decisión como responsable de la tienda: al relajar esas reglas reduces la protección que PrestaShop aplica por defecto.
Puntos clave
Un 403 en archivos estáticos del theme no siempre es ModSecurity ni un bloqueo de IP: revisa primero los .htaccess secundarios de PrestaShop.
PrestaShop puede incluir varios archivos .htaccess en subcarpetas (themes, modules…), no solo el principal.
Si tienes dudas sobre qué regla está bloqueando una petición, contacta con nuestro equipo de soporte y lo revisamos en los logs del servidor.
