Redirección de productos descatalogados con Prestashop

Si gestionas una tienda online con Prestashop, puede resultar más o menos frecuente tener que desactivar productos o descatalogarlos, si son productos que ya no vas a vender más, bien por ser productos estacionales o porque se han dejado de producir por los siglos de los siglos.

Una opción que tenemos disponible es desactivar el producto, con lo que dejará de estar visible en la tienda y devolverá un error 404 mostrando un mensaje de «producto no disponible». Si quieres evitar esto, la alternativa es dejar visible el producto, pero sin stock, con lo que puedes tener a un usuario pendiente de si repones o no repones existencias.

Así que, cuando está claro que no vas a reponer existencias, y te preocupa —por motivos de SEO y posicionamiento, por ejemplo— que tengas muchos productos inactivos o descatalogados generando errores 404, puedes optar por añadir redirecciones 301 hacia productos o categorías similares.

Para mi, la solución fue añadir esta línea antes del </IfModule> del fichero .htaccess que puedes generar desde la administración de Prestashop. La verdad, nunca había tenido mayores problemas para añadir redirecciones, pero supongo que algo hacía mal o algo ponía mal para lograr que el .htaccess de Prestashop siguiera funcionando y mis redirecciones funcionasen también.

Redirect 301 /categoria/1234-nombre-del-producto-inactivo.html http://mi-tienda.com/categoria/4321-nombre-del-producto-activo.html?

El motivo de añadir el símbolo ? al final de la URL a la que redirecciono es para evitar que pase el parámetro id_product=1234 que viene como variable en la URL. Como así me funcionó, no le he dedicado más tiempo. Si has tenido el mismo problema y te ha servido otra solución, la puedes compartir.

Procesar código PHP en documentos HTML

Con frecuencia he tenido que añadir algo de PHP a sitios web ya realizados en los que el diseñador había construido todo el sitio con ficheros .html, de manera que los enlaces apuntan a documentos .html y no .php, y uno se encuentra con que los documentos con extensión .html no procesan el código PHP y viene tal cual en el código fuente de la página una vez que llega al navegador.

Como resultaría un poco incordio tener que modificar todos los enlaces —sobre todo si no se han usado plantillas o includes y cada página es independiente— una de las soluciones más rápidas es añadir un fichero .htaccess con las siguientes líneas

AddType application/x-httpd-php .html
AddHandler application/x-httpd-php .html

De esta forma, los documentos .html se procesan de la misma forma que los .php en el servidor y nos ahorramos tener que modificar extensiones de ficheros o enlaces.