# dfredirects — Gestor de redirecciones 301

> Introducción dfredirects es un gestor de redirecciones completo para PrestaShop 8 y 9. Gestiona los códigos HTTP 301, 302, 307, 308 y 410, ofrece tres estrategias de coincidencia (exacta, wildcard,…

- Página: <https://www.datafirefly.com/es/documentation/dfredirects/>
- Idioma: es
- Actualizado el: 2026-07-02
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/dfredirects/index.md), [en](https://www.datafirefly.com/en/documentation/dfredirects/index.md), [de](https://www.datafirefly.com/de/documentation/dfredirects/index.md), [it](https://www.datafirefly.com/it/documentation/dfredirects/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfredirects/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfredirects/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfredirects/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

## Introducción

dfredirects es un gestor de redirecciones completo para PrestaShop 8 y 9. Gestiona los códigos HTTP 301, 302, 307, 308 y 410, ofrece tres estrategias de coincidencia (exacta, wildcard, regex PCRE), monitoriza los errores 404 y crea automáticamente redirecciones cuando modifica el slug de un producto, categoría, página CMS, fabricante o proveedor.

## Instalación

1. Vaya a **Módulos → Gestor de módulos → Subir un módulo**.
2. Suba el archivo `dfredirects-1.0.1.zip`.
3. Haga clic en **Instalar**.
4. Un nuevo menú **Redirects** aparece en el back office con cuatro pestañas: Dashboard, Rules, 404 Log e Import / Export / Settings.

La instalación crea tres tablas: `ps_dfredirects_rule` (las reglas), `ps_dfredirects_notfound` (las 404 registradas) y `ps_dfredirects_slug_snapshot` (las instantáneas de URL antes de modificar). La desinstalación elimina estas tablas y toda la configuración.

**Requisitos:** PrestaShop 8.0 mínimo, PHP 8.1 o superior. El módulo funciona de forma idéntica en PrestaShop 9.

## Configuración

Vaya a **Redirects → Import / Export / Settings**. Los ajustes disponibles:

- **Log 404 errors** — interruptor principal del registro de 404.
- **Log bot 404s** — incluir o no las solicitudes de robots conocidos (Googlebot, Bingbot, GPTBot, ClaudeBot, etc.). Recomendado: desactivado para mantener un registro limpio.
- **Auto-redirect on slug change** — activa la creación automática de 301 al cambiar la URL.
- **Preserve query string by default** — valor por defecto del campo preserve_qs para las nuevas reglas.
- **404 log retention (days)** — periodo de retención antes de la purga automática. 0 desactiva la purga.
- **Default HTTP code** — código usado para las reglas creadas automáticamente (301 recomendado).
- **Ignored URL patterns** — un patrón por línea, coincidencia por subcadena. Ejemplo: `.well-known`, `wp-admin`, `autodiscover`. Las URLs coincidentes nunca se registrarán.

## Crear una regla de redirección

En **Redirects → Rules**, haga clic en **New rule**. Cada regla contiene:

- **Source URL** — la URL a interceptar (ruta relativa, ej. `/pagina-antigua`).
- **Match type** — exacta, wildcard o regex (ver más abajo).
- **Target URL** — el destino (ruta relativa o URL absoluta para un dominio externo). Vacío para un código 410.
- **HTTP code** — 301 (permanente, recomendado SEO), 302 (temporal), 307/308 (conservan el método HTTP), 410 (contenido eliminado definitivamente, sin destino).
- **Preserve query string** — si está activado, `?utm_source=x` se transfiere al destino.
- **Shop / Language** — alcance de la regla. 0 = todas las tiendas / todos los idiomas.
- **Note** — campo libre para sus anotaciones.

### Coincidencia exacta

La URL solicitada debe coincidir exactamente con la fuente (tras normalización: minúsculas, sin query string, sin barra final). Es el tipo más eficiente — búsqueda indexada en base de datos, coste constante sea cual sea el tamaño de la tabla.

### Coincidencia wildcard

El asterisco `*` captura cualquier secuencia. Las capturas son reutilizables en el destino con `$1`, `$2`, etc.

```
Fuente  : /categoria-antigua/*
Destino : /categoria-nueva/$1

/categoria-antigua/mi-producto  →  /categoria-nueva/mi-producto
```

### Coincidencia regex

Sintaxis PCRE completa entre delimitadores tilde. Los grupos de captura se usan con `$1`, `$2`, etc. Use la clase `[0-9]` para los dígitos.

```
Fuente  : ~^/product/([0-9]+)/(.*)$~
Destino : /p/$1-$2

/product/42/producto-genial  →  /p/42-producto-genial
```

El modificador `e` (evaluación de código) se elimina automáticamente por seguridad. Las reglas regex inválidas se rechazan en la creación y en la importación.

## Redirecciones automáticas al cambiar slug

Cuando la opción está activada, el módulo captura la URL de cada objeto antes de su actualización (hook `UpdateBefore`), la compara tras la actualización (hook `UpdateAfter`) y crea una redirección 301 si la URL cambió. Funciona para productos, categorías, páginas CMS, fabricantes y proveedores, para cada idioma y tienda activos.

Al **eliminar** un producto, se crea una redirección hacia su categoría por defecto. Al eliminar una categoría, hacia su categoría padre. Si no existe ningún destino relevante, el fallback es la página de inicio.

### Detección de cadenas y bucles

Si existe una regla A→B y cambia el slug de B a C, el módulo actualiza automáticamente la regla A para apuntar directamente a C (resolución recursiva, 5 niveles máx). Las reglas actualizadas de esta forma llevan la mención `[chain-fix]` en su nota. Los bucles (A→B→A) se detectan y la creación se rechaza.

Las redirecciones automáticas solo se crean si el `link_rewrite` del objeto está relleno en el idioma correspondiente. Las URLs malformadas (segmentos compuestos únicamente de dígitos y guiones) se rechazan.

## Monitorización de 404

Cada página no encontrada se registra en **Redirects → 404 Log** con la URL, el referrer, el user-agent, la dirección IP, un contador de hits y la fecha de la última visita. El filtro por defecto oculta los bots y las entradas ya resueltas.

### Crear una redirección desde una 404

Haga clic en la acción **Create redirect** de una entrada 404. El módulo analiza su catálogo y propone hasta 5 destinos probables (productos, categorías, páginas CMS) clasificados por similitud, con una puntuación visual. Seleccione una sugerencia o introduzca una URL manual, elija el código HTTP, confirme: la regla se crea y la 404 se marca como resuelta.

## Importación y exportación CSV

### Formato del archivo

```
source_url,target_url,match_type,http_code,id_shop,id_lang,preserve_qs,active,note
/pagina-antigua,/pagina-nueva,exact,301,0,0,1,1,migracion 2026
/produits/*,/products/$1,wildcard,301,0,0,1,1,fr a en
~^/cat-([0-9]+)/$~,/category/$1,regex,301,0,0,1,1,ids numericos
```

Solo las columnas `source_url` y `target_url` son obligatorias (destino opcional para un código 410). Los delimitadores coma, punto y coma, tabulación y pipe se auto-detectan. La opción **Update existing rules** activa el UPSERT: una fuente ya presente se actualiza en lugar de ignorarse.

El informe de importación muestra el número de reglas importadas, actualizadas, ignoradas, y el detalle de errores línea por línea (regex inválida, fuente ausente, etc.).

### Exportación

El botón **Download CSV** exporta todas las reglas en UTF-8 con BOM, abrible directamente en Excel.

## Dashboard

El panel muestra: el número de reglas activas (con la parte auto-generada), el total de redirecciones servidas, el número de 404 sin resolver, la tendencia 404 en 30 días, el top 5 de las 404 más frecuentes, el top 5 de las redirecciones más usadas, y la lista de reglas muertas (creadas hace más de 90 días, nunca activadas) — candidatas a eliminación para mantener una tabla ligera.

## Solución de problemas

### Mi redirección no se activa

- Verifique que la regla está **activa** y que su alcance tienda / idioma corresponde a la solicitud.
- Las reglas exactas se evalúan antes que las wildcard y regex: verifique que una regla exacta no oculta su patrón.
- Vacíe la caché de PrestaShop (`var/cache/`).

### Demasiadas 404 generadas por bots

Desactive **Log bot 404s** en los ajustes, o añada patrones en **Ignored URL patterns** (ej. `.well-known`, `wp-`, `autodiscover`).

### La auto-redirección no se creó al cambiar el slug

- La auto-redirección solo se activa si el `link_rewrite` cambia realmente — una modificación solo del nombre no basta.
- Verifique que la opción **Auto-redirect on slug change** está activada.
- Si el objeto estaba desactivado o su `link_rewrite` estaba vacío en el idioma correspondiente, no se toma ninguna instantánea.

## Changelog

### 1.0.1 — 11 de mayo de 2026

- Validación de las URLs generadas antes de guardar: rechazo de fuentes malformadas.
- Omisión de la generación si el link_rewrite está vacío para el idioma o la tienda actual.

### 1.0.0 — 11 de mayo de 2026

- Versión inicial: motor de redirección (exacta / wildcard / regex), monitorización 404, auto-redirección, importación/exportación CSV, sugerencias, dashboard.
