Configurar archivo .htaccess en PrestaShop para DirectAdmin
¿Qué es el archivo .htaccess y por qué es tan importante en PrestaShop?
El archivo .htaccess es un archivo de configuración que permite controlar el comportamiento del servidor web Apache en un directorio específico. En el contexto de PrestaShop, este archivo es una pieza fundamental porque gestiona aspectos críticos como las URLs amigables (rewrites), la seguridad, la compresión de archivos, el caché del navegador y los redireccionamientos.
Si estás usando DirectAdmin como panel de control de tu hosting, es muy probable que tu tienda esté corriendo sobre Apache o LiteSpeed. Ambos servidores son compatibles con las directivas de .htaccess, así que podrás aplicar todas las configuraciones que te mostraremos a continuación.
En este artículo, aprenderás paso a paso cómo configurar el archivo .htaccess en PrestaShop para DirectAdmin, desde los ajustes básicos hasta optimizaciones avanzadas de rendimiento y seguridad. No necesitas ser un experto técnico, solo seguir nuestras instrucciones con calma y paciencia.
Localizar el archivo .htaccess en tu instalación de PrestaShop
Antes de empezar a configurar nada, necesitas saber dónde se encuentra el archivo y cómo acceder a él. En una instalación estándar de PrestaShop, el archivo .htaccess vive en la raíz de tu tienda, es decir, en la misma carpeta donde se encuentran los archivos index.php, config/, admin/ (o el nombre que le hayas dado a tu panel de administración).
Acceso mediante FTP o Administrador de Archivos de DirectAdmin
Tienes dos formas principales de acceder al archivo:
- Usando un cliente FTP como FileZilla: Conéctate a tu servidor con las credenciales FTP que te proporcionó tu proveedor de hosting.
- Usando el Administrador de Archivos de DirectAdmin: Inicia sesión en tu panel de DirectAdmin (normalmente en
https://tudominio.com:2222), ve a la sección "Administrador de Archivos", navega hasta la carpetapublic_htmlo la carpeta raíz de tu tienda, y activa la opción "Mostrar archivos ocultos" para ver el.htaccess.
[INFO] El archivo
.htaccesscomienza con un punto, lo que lo convierte en un archivo oculto en la mayoría de los sistemas. Si no lo ves, asegúrate de activar la visualización de archivos ocultos en tu cliente FTP o en el administrador de archivos.
Generar el .htaccess desde el panel de administración de PrestaShop
La forma más segura de obtener un .htaccess funcional es generarlo directamente desde el panel de administración de PrestaShop. Esto garantiza que las reglas sean compatibles con tu versión exacta de PrestaShop y con la configuración de tu servidor.
Pasos para generar el archivo desde el back-office
- Accede a tu panel de administración de PrestaShop (por ejemplo,
https://tudominio.com/admin123). - Ve al menú Parámetros avanzados → Rendimiento.
- Busca la sección "Archivo .htaccess" (en versiones recientes puede aparecer como "Generar el archivo .htaccess").
- Haz clic en el botón "Guardar" o "Generar" según tu versión.
- PrestaShop creará automáticamente un archivo
.htaccessen la raíz con las reglas básicas necesarias.
Este archivo generado incluirá las reglas para las URLs amigables, redirecciones de código de error, y algunas cabeceras básicas. Sin embargo, para sacarle el máximo partido, necesitarás editarlo manualmente para añadir optimizaciones adicionales.
[TIP] Si tu tienda no tiene URLs amigables activadas, actívalas primero en Parámetros avanzados → SEO y URLs y luego genera el
.htaccess. Esto agregará las reglas de reescritura necesarias.
Configurar .htaccess PrestaShop para DirectAdmin: reglas esenciales
Ahora que tienes tu archivo base, es hora de personalizarlo. Vamos a añadir reglas que mejorarán el rendimiento y la seguridad de tu tienda. Te recomendamos hacer una copia de seguridad del archivo original antes de editarlo, por si necesitas restaurarlo.
1. Activar la compresión de archivos
La compresión reduce el tamaño de los archivos que se envían al navegador del cliente, acelerando la carga de tu tienda. Añade este bloque al principio del archivo:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json application/xml application/xhtml+xml image/svg+xml
</IfModule>
2. Configurar el caché del navegador
El caché del navegador permite que los visitantes guarden ciertos archivos (imágenes, CSS, JavaScript) en su dispositivo, evitando descargarlos de nuevo en cada visita. Esto reduce significativamente el tiempo de carga en visitas recurrentes.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
3. Proteger archivos sensibles
PrestaShop tiene archivos que no deben ser accesibles públicamente. Añade estas reglas para bloquear el acceso:
<FilesMatch "\.(tpl|ini|log|twig)$">
Require all denied
</FilesMatch>
<FilesMatch "config\.xml|config\.inc\.php|settings\.inc\.php">
Require all denied
</FilesMatch>
4. Bloquear bots maliciosos y solicitudes sospechosas
Los bots maliciosos pueden consumir recursos del servidor y ralentizar tu tienda. Esta regla bloquea solicitudes con patrones sospechosos:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (ahrefs|majestic|rogerbot|semrush) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (python-requests|curl|wget|scrapy) [NC]
RewriteRule .* - [F,L]
</IfModule>
[WARNING] Bloquear ciertos agentes de usuario puede impedir que algunos servicios legítimos (como herramientas de monitorización) accedan a tu sitio. Revisa bien qué agentes bloqueas y considera añadir solo los que sabes que son problemáticos.
Configurar las URLs amigables en DirectAdmin
Una de las funciones más importantes del .htaccess en PrestaShop es el sistema de reescritura de URLs. Si has generado el archivo desde el back-office, estas reglas ya estarán incluidas. Sin embargo, es importante verificar que funcionan correctamente en tu servidor DirectAdmin.
Verificar que el módulo mod_rewrite está activo
DirectAdmin suele tener activado mod_rewrite por defecto, pero es bueno comprobarlo. Puedes hacerlo creando un archivo llamado info.php con el siguiente contenido:
<?php phpinfo(); ?>
Sube el archivo a la raíz de tu tienda y accede a https://tudominio.com/info.php. Busca "mod_rewrite" en la sección de módulos de Apache. Si aparece, todo está correcto. Si no, deberás activarlo desde DirectAdmin o contactar con tu proveedor de hosting.
[INFO] Después de la verificación, elimina el archivo
info.phppor seguridad. Nunca dejes archivos de información expuestos públicamente.
Reglas de reescritura para PrestaShop
Si por alguna razón el archivo generado no incluye las reglas de reescritura, puedes añadirlas manualmente. El bloque esencial es:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^api/ - [L]
RewriteRule ^(.*)$ /index.php [QSA,L]
</IfModule>
Este bloque redirige todas las solicitudes a index.php, permitiendo que PrestaShop procese las rutas y muestre el contenido correcto.
Añadir cabeceras de seguridad en el .htaccess
La seguridad es fundamental en una tienda online, especialmente si manejas datos de clientes y pagos. Estas cabeceras ayudan a proteger tu sitio contra ataques comunes:
<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set Permissions-Policy "geolocation=(self), microphone=(), camera=()"
</IfModule>
Configurar HSTS (HTTP Strict Transport Security)
Si tienes SSL activado (algo que recomendamos encarecidamente), puedes forzar el uso de HTTPS con HSTS:
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>
[WARNING] Solo activa HSTS si estás 100% seguro de que tu certificado SSL funciona correctamente y no piensas desactivarlo a corto plazo. Una vez que el navegador registra esta cabecera, forzará HTTPS incluso si tú intentas acceder por HTTP.
Optimizar el rendimiento con reglas adicionales
Además de la compresión y el caché, hay otras optimizaciones que puedes añadir al .htaccess para mejorar la velocidad de tu tienda PrestaShop.
Deshabilitar la firma del servidor
Esto oculta información sobre el servidor que podría ser útil para atacantes:
ServerSignature Off
ServerTokens Prod
Reducir el tiempo de respuesta del servidor
Puedes configurar el tiempo de espera del servidor para manejar mejor las conexiones lentas:
Timeout 60
Proteger contra hotlinking de imágenes
El hotlinking ocurre cuando otros sitios usan tus imágenes directamente, consumiendo tu ancho de banda. Para bloquearlo:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,NC,L]
[TIP] Reemplaza
tudominio.comcon tu dominio real. Asegúrate de incluir también el dominio conwwwsi lo usas.
Solución de problemas comunes con .htaccess en DirectAdmin
A veces las cosas no salen a la primera. Aquí tienes los problemas más frecuentes y sus soluciones:
Error 500 Internal Server Error
Este error significa que hay una sintaxis incorrecta en el archivo. Las causas más comunes son:
- Un carácter especial mal escapado.
- Una directiva no soportada por el servidor.
- Conflictos entre reglas.
Solución: Restaura la copia de seguridad del archivo original y añade las modificaciones de una en una, comprobando después de cada cambio.
Las URLs amigables no funcionan
Si las URLs tipo https://tudominio.com/tienda/3-mi-producto dan error 404, probablemente mod_rewrite no está activo o las reglas son incorrectas.
Solución: Verifica que mod_rewrite está activo y que el archivo .htaccess contiene las reglas de reescritura correctas. También asegúrate de que el archivo se llama exactamente .htaccess (sin nombre antes del punto).
El archivo no se puede editar
Si el administrador de archivos de DirectAdmin no te deja editar el .htaccess, puede ser un problema de permisos.
Solución: Cambia los permisos del archivo a 644 (lectura y escritura para el propietario, solo lectura para el grupo y otros) mediante FTP o el administrador de archivos.
Preguntas frecuentes sobre .htaccess PrestaShop DirectAdmin
¿Puedo usar el mismo .htaccess en otros paneles de control como Syspanel?
Sí, las reglas de .htaccess son independientes del panel de control. Sin embargo, si usas Syspanel (antes conocido como HestiaCP), ten en cuenta que el puerto de acceso al panel es el 2106 en lugar del 2222 de DirectAdmin. Las reglas del archivo funcionarán de la misma manera.
¿Cómo sé si mi servidor usa Apache o LiteSpeed?
Ambos son compatibles con .htaccess. Puedes verificar el servidor en los encabezados HTTP de tu sitio (usando herramientas online como Pingdom) o en la información de tu panel de DirectAdmin.
¿Cada cuánto debo regenerar el .htaccess?
Siempre que cambies la configuración de URLs amigables, actives o desactives SSL, o actualices PrestaShop a una versión mayor, es recomendable regenerar el archivo desde el back-office.
¿Qué hago si rompo mi sitio?
No entres en pánico. Todos hemos pasado por esto. Simplemente restaura la copia de seguridad que hiciste al principio. Si no tienes copia, puedes generar un nuevo .htaccess desde el back-office de PrestaShop.
¿Es necesario añadir todas estas reglas?
No, las reglas son acumulativas. Puedes empezar con las básicas e ir añadiendo más según las necesidades de tu tienda. Lo importante es que cada cambio sea probado antes de implementarlo en producción.
Consejos finales para tu configuración
Configurar el archivo .htaccess en PrestaShop para DirectAdmin no tiene por qué ser una tarea complicada. Sigue estos consejos para mantener tu tienda rápida y segura:
- Haz siempre una copia de seguridad antes de modificar el archivo.
- Prueba cada cambio en un entorno de desarrollo si es posible.
- Mantén PrestaShop actualizado y regenera el
.htaccessdespués de cada actualización. - Monitoriza el rendimiento de tu tienda con herramientas como Google PageSpeed Insights para ver el impacto de tus cambios.
- Consulta la documentación oficial de PrestaShop para conocer las mejores prácticas específicas de tu versión.
Recuerda que un .htaccess bien configurado puede marcar la diferencia entre una tienda lenta y vulnerable, y una tienda rápida y segura. Tómate tu tiempo, sigue los pasos y no tengas miedo de experimentar (siempre con precaución).
Si tienes alguna duda o problema durante el proceso, no dudes en contactar con tu proveedor de hosting. Ellos conocen la configuración específica de su servidor y podrán ayudarte a resolver cualquier inconveniente.
¡Buena suerte con la configuración de tu tienda PrestaShop en DirectAdmin!
