Hola @sarahub, entiendo perfectamente tu frustración. En PrestaShop 1.7.6.3, los problemas con las URLs amigables y los 404 suelen venir por dos lados: la configuración del servidor Apache o los esquemas de ruta.
Primero, aunque tu hosting diga que mod_rewrite está activo, es fundamental que la configuración de Apache para tu dominio permita las reescrituras. Esto se controla con la directiva AllowOverride All en el archivo de configuración de tu host virtual o en el httpd.conf para el directorio donde está instalado PrestaShop. Si no está en All, el .htaccess no se leerá correctamente.
Segundo, sobre los conflictos de palabras clave y los 404: esto sucede cuando tus esquemas de URL son demasiado genéricos o cuando hay una ambigüedad entre una categoría y un producto con una URL similar. Te recomiendo los siguientes pasos:
- Revisar y regenerar .htaccess: Ve a 'Parámetros de la tienda > Tráfico y SEO'. Desactiva las URLs amigables, guarda. Luego, vuelve a activarlas y guarda. Esto forzará la regeneración de un nuevo archivo
.htaccess. Asegúrate de que los permisos de escritura en la raíz de tu instalación de PrestaShop sean correctos para que se pueda generar.
- Esquemas de URL: Evita que los esquemas de ruta para categorías y productos tengan la misma estructura inicial. Por ejemplo, un esquema más robusto para productos sería
/{category_name}/{id}-{product_name}.html y para categorías /{id}-{category_name}. Esto reduce la posibilidad de que se confundan. Los esquemas por defecto suelen funcionar bien si no hay conflictos. Prueba a volver a los esquemas por defecto si los has cambiado mucho.
- Idioma ISO: Quitar el código ISO del idioma solo es recomendable si tu tienda es monolingüe. Si tienes varios idiomas, el sistema lo necesita para diferenciar las versiones lingüísticas de tus URLs. Si lo quitas en una tienda multilingüe, generará muchos 404.
Si después de verificar AllowOverride All con tu hosting y regenerar el .htaccess con esquemas de ruta más específicos sigues teniendo problemas, revisa el contenido de tu .htaccess para ver si hay alguna regla personalizada que esté interfiriendo.