Cómo arreglar el error 404 en PrestaShop (DirectAdmin)
¿Por qué aparece el error 404 en PrestaShop y qué significa realmente?
Ver un error 404 prestashop en tu tienda online es, sin duda, una de las experiencias más frustrantes para cualquier propietario de un negocio digital. No solo pierdes la venta del cliente que está intentando comprar, sino que también dañas la confianza del usuario y, de paso, tu posicionamiento en Google. Pero respira, porque la mayoría de las veces este problema tiene una solución clara y sencilla, especialmente si tu tienda está alojada en un servidor con panel de control DirectAdmin.
Un error 404, técnicamente llamado "Not Found", significa que el servidor ha encontrado la solicitud, pero no ha podido localizar el recurso solicitado (una página, una imagen, un producto). Es decir, el archivo no existe en la ruta que el navegador ha pedido. En el contexto de PrestaShop, esto suele ocurrir por tres motivos principales: reglas de reescritura de URL (mod_rewrite) mal configuradas, archivos .htaccess corruptos o inexistentes, o problemas con la configuración de las URL amigables.
En este artículo, te voy a guiar paso a paso, como si estuvieras hablando con un amigo técnico, para que puedas arreglar 404 tienda de tu PrestaShop alojado en un servidor con DirectAdmin. No necesitas ser un experto en programación, solo seguir las instrucciones con calma y paciencia.
El primer paso: Acceder a tu panel de control DirectAdmin
Antes de tocar nada, necesitas acceder a tu panel de prestashop directadmin. Este es el panel de control de tu hosting, donde puedes gestionar archivos, bases de datos y la configuración del servidor. Para ello, abre tu navegador web favorito y escribe la siguiente dirección:
https://tu-dominio.com:2222
[INFO] Si no recuerdas tu contraseña de DirectAdmin, contacta con tu proveedor de hosting. Ellos podrán restablecerla o darte acceso temporal.
Una vez dentro, verás un panel con muchos iconos. No te asustes, solo vamos a usar un par de ellos. La clave está en el administrador de archivos, que suele llamarse "File Manager" o "Administrador de Archivos". Haz clic en él.
Localizar y revisar el archivo .htaccess de tu PrestaShop
El archivo .htaccess es el corazón de la configuración de URLs en Apache (el servidor web que usa tu hosting). PrestaShop genera este archivo automáticamente, pero a veces se corrompe, se borra o se sobrescribe con contenido incorrecto.
¿Cómo encontrar el .htaccess?
Dentro del administrador de archivos de DirectAdmin, navega hasta la carpeta donde está instalado tu PrestaShop. Normalmente es public_html o domains/tudominio.com/public_html. Verás una lista de carpetas y archivos. Busca un archivo llamado .htaccess. Es un archivo oculto, por lo que es posible que necesites activar la opción "Mostrar archivos ocultos" en la configuración del administrador de archivos (suele ser un botón o una casilla de verificación).
¿Qué debo hacer si el archivo no existe o está vacío?
Si no ves el archivo .htaccess, no te preocupes. Es la causa más común del error 404 prestashop. La solución es regenerarlo desde el panel de administración de PrestaShop.
- Ve a la URL de tu administrador, normalmente
tudominio.com/admin(o la ruta que configuraste al instalar). - Inicia sesión con tus credenciales.
- En el menú lateral izquierdo, busca la sección "Configuración avanzada" y luego haz clic en "Rendimiento".
- Dentro de esta página, verás una opción llamada "Regenerar el archivo .htaccess". Haz clic en el botón correspondiente.
- PrestaShop regenerará el archivo al instante. Luego, ve a tu tienda y prueba a navegar por algunas páginas (categorías, productos, etc.) para ver si el error 404 ha desaparecido.
[TIP] Si no encuentras la opción de regenerar, también puedes crear un archivo
.htaccessvacío manualmente desde DirectAdmin y luego repetir el paso anterior. PrestaShop lo sobrescribirá con el contenido correcto.
Activar y configurar las URL amigables en PrestaShop
Las url amigables prestashop son esenciales para el SEO y para que las páginas se muestren correctamente. Si las tienes desactivadas o mal configuradas, es muy probable que obtengas errores 404 al intentar acceder a productos o categorías.
Paso a paso para activarlas correctamente
- Ve de nuevo a tu panel de administración de PrestaShop.
- En el menú lateral, navega a "Configuración avanzada" > "SEO y URLs".
- Verás una sección llamada "Configuración de la URL de la tienda". Asegúrate de que la URL de tu tienda es correcta (sin barras finales ni caracteres extraños).
- Un poco más abajo, encontrarás la opción "URLs amigables". Actívala (ponla en "Sí").
- Haz clic en el botón "Guardar".
- IMPORTANTE: Después de guardar, PrestaShop te pedirá que regeneres el archivo
.htaccessde nuevo. Haz clic en el enlace o botón que aparece para hacerlo.
[WARNING] Si al activar las URLs amigables te aparece un error que dice algo como "Las URLs amigables requieren el módulo mod_rewrite de Apache", significa que el módulo no está activado en tu servidor. No te asustes, la solución está en el siguiente punto.
Solucionar el problema de mod_rewrite en DirectAdmin
El módulo mod_rewrite es el que permite a Apache reescribir las URLs de forma limpia (por ejemplo, convertir index.php?id_category=5 en /categoria/ropa). Si este módulo no está activo, PrestaShop no puede funcionar con URLs amigables y te lanzará errores 404 constantemente.
¿Cómo comprobar si mod_rewrite está activo?
La forma más sencilla de comprobarlo es desde el propio PrestaShop. En la página de "SEO y URLs", si el módulo está desactivado, te aparecerá un aviso en rojo. Otra forma es crear un archivo de prueba.
- Desde DirectAdmin, en el administrador de archivos, crea un archivo llamado
info.phpen la carpetapublic_html. - Edita el archivo y pega el siguiente código:
<?php phpinfo(); ?> - Guarda el archivo y luego accede a
tudominio.com/info.phpen tu navegador. - Busca en la página el apartado "Loaded Modules" o "Módulos cargados". Haz clic en "Ctrl + F" y busca "mod_rewrite". Si aparece, está activo. Si no, está desactivado.
Activando mod_rewrite en DirectAdmin
Si no está activo, debes activarlo desde la configuración de Apache en DirectAdmin. Esto puede variar según el proveedor, pero normalmente se hace así:
- En el panel de DirectAdmin, busca la sección "Configuración de Apache" o "Custom Build". A veces está en "Extra Features" o "Advanced Features".
- Dentro, busca la opción de "Módulos de Apache" o "Apache Modules".
- Busca
mod_rewriteen la lista y asegúrate de que está marcado o habilitado. - Guarda los cambios y reinicia Apache (o "HTTP Server"). DirectAdmin suele tener un botón para hacer esto.
- Una vez reiniciado, vuelve a PrestaShop y activa las URLs amigables.
[INFO] Si no encuentras estas opciones en tu DirectAdmin, es posible que tu plan de hosting no te permita modificar la configuración del servidor. En ese caso, contacta con tu proveedor y solicita que activen
mod_rewritepara tu cuenta. Es una petición muy común y rápida de resolver.
La solución definitiva: Editar manualmente el .htaccess
Si después de todos los pasos anteriores el error 404 prestashop persiste, es hora de ir a la "cirugía mayor". Vamos a editar manualmente el archivo .htaccess con las reglas correctas que PrestaShop necesita.
¿Qué contenido debe tener el .htaccess de PrestaShop?
Un .htaccess de PrestaShop tiene varias secciones: redirecciones, reglas de seguridad y, sobre todo, las reglas de reescritura para las URLs amigables. Aquí tienes un ejemplo de las líneas más críticas que debe contener para el correcto funcionamiento:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /tu-carpeta-de-instalacion/ # Si está en la raíz, usa /
RewriteRule ^api/?(.*)$ webservice/dispatcher.php [QSA,L]
RewriteRule .* - [E=MOD_REWRITE:1]
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)\-([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg [L]
RewriteRule ^c/([_a-zA-Z0-9-]*)/([0-9]+)\.jpg$ /img/c/$2.jpg [L]
RewriteRule ^([_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1.jpg [L]
RewriteRule ^([0-9]+)\.jpg$ /img/c/$1.jpg [L]
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)\-([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1$2.jpg [L]
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)\-([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1$2.jpg [L]
RewriteRule .* /index.php [L]
</IfModule>
[WARNING] ¡OJO! No copies y pegues este código sin más, ya que la ruta base y las rutas de imágenes pueden variar según tu instalación. Este es un ejemplo genérico. La mejor manera de obtener el código exacto es, primero, intentar regenerarlo desde el panel de PrestaShop tal y como te expliqué antes. Si eso falla, este código te servirá como base.
Pasos para editar el .htaccess manualmente
- En el administrador de archivos de DirectAdmin, localiza el archivo
.htaccess. - Haz clic derecho sobre él y selecciona "Editar" o "Edit".
- Se abrirá un editor de texto. Borra todo el contenido.
- Pega el código anterior, pero sustituye la línea
RewriteBase /tu-carpeta-de-instalacion/por la correcta. Si tu tienda está en la raíz del dominio, usaRewriteBase /. Si está en una subcarpeta (ej:tudominio.com/tienda), usaRewriteBase /tienda/. - Guarda el archivo y vuelve a probar tu tienda.
Otras causas comunes del error 404 en PrestaShop
A veces, el problema no es solo de reglas de reescritura. Estas son otras causas que debes descartar:
1. Enlaces directos a páginas antiguas o eliminadas
Si tienes un enlace externo (de otra web, de un email o de un marcador) que apunta a una URL que ya no existe, verás un 404. Esto no es un fallo de configuración, es un enlace roto. La solución es configurar redirecciones 301 desde las URLs antiguas a las nuevas.
2. Problemas con la caché de PrestaShop
Una caché corrupta puede causar errores extraños, incluido el 404.
- Ve a "Configuración avanzada" > "Rendimiento".
- En la parte superior, verás un botón que dice "Vaciar la caché" o "Limpiar la caché". Haz clic en él.
- También puedes desactivar la caché temporalmente (poner "No" en "Cache de plantillas" y "Cache de combinación") para probar.
3. Permisos de archivos incorrectos
Los archivos y carpetas de PrestaShop deben tener permisos específicos para que el servidor pueda leerlos y escribirlos correctamente. Si los permisos son incorrectos, el servidor puede devolver un 404 (o un 403).
- Las carpetas deben tener permisos
755. - Los archivos deben tener permisos
644.
En DirectAdmin, puedes cambiar los permisos seleccionando el archivo o carpeta y haciendo clic en el botón "Change Permissions" o "Cambiar permisos".
Preguntas frecuentes (FAQ) sobre el error 404 en PrestaShop
¿Por qué mi PrestaShop da error 404 en todas las páginas excepto en la home?
Esto es un síntoma clásico de que las URLs amigables están activadas pero mod_rewrite no funciona. Sigue los pasos de activación del módulo o revisa el .htaccess.
¿Puedo usar el panel de control "Syspanel" para arreglar este error?
Sí, si tu hosting usa el panel Syspanel (antes conocido como HestiaCP), el proceso es muy similar. Accede a través del puerto 2106 (ej: https://tudominio.com:2106), busca el administrador de archivos y sigue los mismos pasos para editar el .htaccess o regenerar las URLs amigables desde PrestaShop. La lógica del servidor es la misma.
He cambiado la URL de mi tienda y ahora todo da error 404
Después de cambiar la URL en PrestaShop (Configuración avanzada > SEO y URLs), es imprescindible regenerar el .htaccess y vaciar la caché. Si el problema persiste, revisa que la nueva URL esté bien escrita y que el dominio apunte correctamente al servidor.
¿Qué hago si he borrado un producto y ahora su URL da 404?
Lo mejor es crear una redirección 301 desde la URL del producto eliminado hacia la categoría o producto similar. Puedes hacerlo añadiendo una línea en el .htaccess o usando un módulo de redirecciones de PrestaShop.
Resumen final y consejos para evitar futuros errores
En resumen, el error 404 prestashop en un entorno prestashop directadmin casi siempre se debe a un problema con el archivo .htaccess o con la activación de mod_rewrite. Siguiendo los pasos que te he detallado (regenerar el archivo, activar URLs amigables, y verificar el módulo de Apache), deberías poder arreglar 404 tienda sin necesidad de ser un experto.
Para terminar, te dejo algunos consejos para evitar que esto vuelva a pasar:
- Haz copias de seguridad de tu
.htaccessperiódicamente. Puedes
