Hola @sara_madrid y a todos,
Efectivamente, los overrides en FrontController o Dispatcher son muy delicados en PrestaShop 1.7, ya que muchas veces entran en conflicto con el propio funcionamiento del Dispatcher o con otros módulos que también intentan modificar el comportamiento inicial de la petición. Tu enfoque es válido para un caso muy específico, pero como bien apunta @pedrolab, no escala bien, y @silvia94 tiene razón en que el rendimiento puede sufrir.
El problema principal es que estás forzando una redirección de bajo nivel (header()) después de que el sistema ya ha empezado a inicializar cosas. Una opción más limpia sería usar un hook que se ejecute antes de que el Dispatcher intente encontrar el controlador adecuado. El hook actionDispatcherBeforeDispatch es ideal para esto en PrestaShop 1.7.7.5, ya que te permite interceptar la URL antes de que se procese por completo.
Aquí te dejo un ejemplo de cómo podrías implementarlo en un módulo simple:
class MyRedirectModule extends Module
{
// ... constructor y métodos de instalación/desinstalación ...
public function hookActionDispatcherBeforeDispatch()
{
$requestUri = $_SERVER['REQUEST_URI'];
$redirects = [
'/antigua-url-producto' => ['/nueva-url-producto', 301],
'/promocion-expirada' => ['/promocion-actual', 302],
];
Este código iría dentro de un módulo propio. Así, encapsulas la lógica y evitas conflictos directos con el core. El método hookActionDispatcherBeforeDispatch se ejecuta antes de que PrestaShop decida qué controlador cargar, dándote la oportunidad de redirigir al usuario si la URL coincide.
Sin embargo, para una tienda en producción, gestionar esto manualmente en el código de un módulo sigue siendo poco práctico y propenso a errores. Para automatizar seo redireccionamientos 301, 302, en la tienda de forma eficiente y con una interfaz amigable en el back office, lo más recomendable es utilizar un módulo especializado. Estos módulos suelen ofrecer opciones para importar URLs, gestionar tipos de redirección y asegurar la compatibilidad con futuras versiones de PrestaShop.