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

Proteger archivos sensibles de PrestaShop con contraseña (htaccess)

Actualizado el 17 de mayo de 2026

¿Por qué proteger archivos sensibles de PrestaShop?

Cuando gestionas una tienda online con PrestaShop, no solo vendes productos: también almacenas datos de clientes, contraseñas cifradas, configuraciones de pago y archivos de logs que pueden revelar información crítica. Un acceso no autorizado a estos archivos puede comprometer la seguridad de toda tu tienda y la confianza de tus clientes.

La buena noticia es que proteger archivos sensibles con contraseña es más sencillo de lo que parece. Gracias al archivo .htaccess (que ya usa PrestaShop para reescrituras de URL), puedes añadir una capa extra de autenticación sin necesidad de ser un experto en servidores.

En esta guía aprenderás paso a paso cómo proteger directorios y archivos clave de tu instalación, qué archivos son los más vulnerables y cómo configurarlo todo de forma segura, incluso si nunca has tocado un archivo de configuración.


¿Qué es exactamente el archivo .htaccess de PrestaShop?

El archivo .htaccess es un archivo de configuración que Apache (el servidor web más usado) lee para aplicar reglas en el directorio donde se encuentra. PrestaShop ya genera uno automáticamente en la raíz de tu instalación para gestionar URLs amigables, redirecciones y cabeceras de seguridad.

Pero este archivo no solo sirve para SEO o redirecciones: también puedes usarlo para proteger con contraseña carpetas concretas o archivos individuales. Añadir reglas de autenticación es una práctica recomendada por expertos en seguridad prestashop, especialmente en entornos de producción.

Archivos y carpetas que deberías proteger sí o sí

No todos los archivos necesitan la misma protección. Estos son los más críticos:

  • /config/: contiene settings.inc.php con credenciales de la base de datos.
  • /app/config/: parámetros de conexión y configuración avanzada.
  • /var/logs/: logs de errores que pueden filtrar rutas internas o datos de sesión.
  • /admin/ (o el nombre que le hayas dado a tu panel): aunque ya tiene login, una doble capa no hace daño.
  • /download/: si vendes archivos digitales, evita que se acceda directamente por URL.
  • /upload/: a veces contiene archivos subidos por clientes, que podrían ser maliciosos.
  • /cache/: aunque no es crítico, los archivos compilados pueden revelar estructura interna.

Antes de empezar: prepara tu servidor

Proteger archivos con .htaccess requiere dos cosas:

  1. Que Apache tenga activado el módulo mod_auth_basic (lo normal en cualquier hosting).
  2. Que puedas crear un archivo .htpasswd (donde se guardan las contraseñas cifradas).

[INFO] Si tu hosting usa Nginx en lugar de Apache, este método no funcionará directamente. Necesitarías configuración a nivel de servidor. Consulta con tu proveedor de hosting.

Cómo crear el archivo .htpasswd

El archivo .htpasswd contiene las credenciales en formato usuario:hash. Para generarlo puedes usar herramientas online o el siguiente comando SSH:

htpasswd -c /ruta/absoluta/.htpasswd usuario_elegido

Te pedirá una contraseña dos veces y creará el archivo. Si no tienes acceso SSH, puedes usar generadores online como https://www.htaccesstools.com/htpasswd-generator/.

[WARNING] Guarda el archivo .htpasswd fuera de la carpeta pública de tu web (por ejemplo, en /home/usuario/.htpasswd). Si lo dejas dentro de public_html, podrían descargarlo directamente.


Método 1: Proteger un directorio completo con contraseña

Este es el método más común y útil. Se aplica cuando quieres que toda la carpeta (y sus subcarpetas) requiera autenticación.

Paso 1: Accede al directorio que quieres proteger

Usa un cliente FTP (como FileZilla) o el administrador de archivos de tu hosting. Vamos a proteger, por ejemplo, la carpeta /var/logs/.

Paso 2: Crea o edita el archivo .htaccess dentro de esa carpeta

Dentro de /var/logs/, crea un archivo llamado .htaccess (si no existe) y añade:

AuthType Basic
AuthName "Acceso restringido"
AuthUserFile /home/usuario/.htpasswd
Require valid-user

Paso 3: Sube el archivo y prueba

Guarda los cambios y accede a tudominio.com/var/logs/. Debería aparecer un cuadro de diálogo pidiendo usuario y contraseña.

[TIP] La ruta en AuthUserFile debe ser absoluta, no relativa. Si no sabes cuál es, crea un archivo test.php en la raíz con <?php echo __DIR__; ?> y así la obtienes.


Método 2: Proteger archivos individuales con .htaccess

A veces no quieres bloquear toda una carpeta, solo un archivo concreto. Por ejemplo, config/settings.inc.php.

Crear un bloque condicional en el .htaccess raíz

En el .htaccess que está en la raíz de PrestaShop, añade al final:

<Files "settings.inc.php">
    AuthType Basic
    AuthName "Archivo protegido"
    AuthUserFile /home/usuario/.htpasswd
    Require valid-user
</Files>

Proteger varios archivos a la vez

Puedes agrupar varios archivos con una expresión regular:

<FilesMatch "\.(log|ini|env|yml)$">
    AuthType Basic
    AuthName "Área restringida"
    AuthUserFile /home/usuario/.htpasswd
    Require valid-user
</FilesMatch>

Esto protegería todos los archivos con esas extensiones dentro de esa carpeta y subcarpetas.


Método 3: Doble protección para el panel de administración

Tu panel de administración de PrestaShop ya tiene su propio login, pero añadir una capa extra con .htaccess puede evitar ataques de fuerza bruta.

Localiza la carpeta admin

PrestaShop suele renombrar la carpeta /admin/ a algo como /admin12345/. Busca en tu instalación cuál es la actual.

Aplica la protección de directorio

Dentro de esa carpeta, crea .htaccess con:

AuthType Basic
AuthName "Zona privada"
AuthUserFile /home/usuario/.htpasswd
Require valid-user

Consideración importante

Cuando proteges el admin, tendrás que meter la contraseña dos veces: una por el .htaccess y otra por el login de PrestaShop. Es molesto, pero muy seguro.


Cómo generar contraseñas seguras para .htpasswd

No uses contraseñas simples como "admin123". Para proteger archivos sensibles de PrestaShop, la contraseña debe ser robusta.

Características de una contraseña segura

  • Mínimo 12 caracteres.
  • Mezcla de mayúsculas, minúsculas, números y símbolos.
  • Evita palabras comunes o fechas de nacimiento.
  • No la reutilices en otros servicios.

Ejemplo de contraseña generada

&7Kp#3vL!9qZ@2sW

Puedes usar un gestor de contraseñas para generarlas y guardarlas de forma segura.


Casos especiales: WooCommerce vs PrestaShop

Si alguna vez has usado WooCommerce, sabrás que la estructura es diferente. En PrestaShop, los archivos sensibles están más distribuidos. Mientras que en WooCommerce sueles proteger wp-config.php, en PrestaShop debes proteger varios archivos de configuración.

PlataformaArchivos a proteger
PrestaShop/config/settings.inc.php, /app/config/parameters.php
WooCommercewp-config.php, /wp-admin/

[INFO] Esta guía se centra en PrestaShop, pero los mismos principios aplican a cualquier CMS.


Errores comunes al configurar .htaccess en PrestaShop

Error 500: Internal Server Error

Suele deberse a una ruta incorrecta en AuthUserFile o a permisos inadecuados del archivo .htpasswd.

Solución: Verifica que la ruta sea absoluta y que el archivo .htpasswd tenga permisos 644.

Error: "No permission to access /" en el directorio raíz

Si has protegido accidentalmente la raíz, toda tu tienda pedirá contraseña. Revisa el .htaccess de la raíz y elimina cualquier bloque de autenticación.

El acceso sigue permitido sin contraseña

Esto ocurre si el servidor no está leyendo el .htaccess. Comprueba que Apache tenga AllowOverride All en la configuración del vhost.


Protección adicional: ocultar archivos sensibles por defecto

Además de la contraseña, puedes añadir reglas para denegar el acceso a archivos que nunca deberían ser accesibles desde el navegador.

Bloquear archivos de configuración por defecto

En el .htaccess raíz, añade:

<FilesMatch "\.(inc|sql|tpl|log|ini|env|sh|bak)$">
    Require all denied
</FilesMatch>

Bloquear acceso a directorios ocultos

RedirectMatch 403 ^/\.(?!well-known).*

Esto bloquea cualquier acceso a carpetas que empiecen por punto (como .git o .env).


Cómo probar que la protección funciona correctamente

Después de configurar todo, debes verificar que funciona:

  1. Abre una ventana de incógnito en tu navegador.
  2. Accede a la URL protegida (por ejemplo, tudominio.com/var/logs/).
  3. Debe aparecer un mensaje de "Autenticación requerida".
  4. Introduce las credenciales y verifica que el acceso es correcto.

[WARNING] No hagas las pruebas en tu navegador habitual, ya que las credenciales pueden estar cacheadas y no verás el cuadro de diálogo.


Resumen y buenas prácticas finales

Proteger archivos sensibles con prestashop htaccess es una de las medidas más efectivas para reforzar la seguridad de tu tienda. No sustituye a otras medidas (como mantener PrestaShop actualizado o usar certificados SSL), pero añade una barrera extra muy valiosa.

Checklist rápida de seguridad

  • Cambia la carpeta /admin/ por defecto.
  • Protege /config/, /var/logs/ y /app/ con contraseña.
  • Genera contraseñas robustas para el .htpasswd.
  • Guarda el .htpasswd fuera del directorio público.
  • Bloquea el acceso a archivos con extensiones peligrosas.
  • Realiza pruebas periódicas de acceso.

Si tu hosting utiliza Syspanel (antes HestiaCP), recuerda que el acceso a la gestión del servidor se realiza a través del puerto 2106. Desde allí podrás gestionar archivos, permisos y reiniciar Apache si es necesario.


Preguntas frecuentes (FAQ)

¿Qué pasa si olvido la contraseña del .htaccess?

Deberás editar el archivo .htpasswd y generar un nuevo hash para tu usuario. Si no puedes acceder por FTP, usa el administrador de archivos de Syspanel.

¿Puedo proteger solo una subcarpeta de /var/logs/?

Sí, simplemente coloca un .htaccess dentro de esa subcarpeta específica. Las reglas se aplican solo a ese directorio y sus hijos.

¿Afecta la protección al rendimiento de mi tienda?

El impacto es mínimo. Solo se añade una comprobación de autenticación cuando se solicita un archivo protegido. No afecta a las páginas públicas.

¿Debo proteger también el directorio /img/ o /themes/?

No es necesario. Esos directorios contienen contenido público (imágenes, CSS, JS) que debe ser accesible para que la tienda se visualice correctamente. Protegerlos rompería tu web.

¿Qué hago si mi hosting usa Nginx?

Nginx no utiliza .htaccess. Deberás configurar la autenticación a nivel de servidor usando bloques location y archivos .htpasswd. En Syspanel, puedes editar la configuración del sitio desde el panel, aunque necesitarás conocimientos más avanzados.


Con estas instrucciones ya puedes aplicar una capa de protección efectiva a tu PrestaShop. Recuerda que la seguridad es un proceso continuo: revisa periódicamente qué archivos son accesibles y mantén actualizado tu sistema. Proteger archivos con contraseña es un gran primer paso, pero no el único.

¿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