# dfredirects: beheerder van 301-redirects

> Inleiding dfredirects is een volwaardige redirectbeheerder voor PrestaShop 8 en 9. Hij verwerkt de HTTP-codes 301, 302, 307, 308 en 410, biedt drie manieren van matchen (exact, wildcard en PCRE-regex),…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfredirects/>
- Taal: nl
- Bijgewerkt op: 2026-09-09
- Andere talen: [fr](https://www.datafirefly.com/documentation/dfredirects/index.md), [en](https://www.datafirefly.com/en/documentation/dfredirects/index.md), [es](https://www.datafirefly.com/es/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)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Inleiding

dfredirects is een volwaardige redirectbeheerder voor PrestaShop 8 en 9. Hij verwerkt de HTTP-codes 301, 302, 307, 308 en 410, biedt drie manieren van matchen (exact, wildcard en PCRE-regex), bewaakt de 404-fouten en maakt automatisch redirects aan wanneer u de slug van een product, categorie, CMS-pagina, fabrikant of leverancier wijzigt.

## Installatie

1. Ga naar **Modules → Modulebeheer → Een module installeren**.
2. Upload het bestand `dfredirects-1.0.1.zip`.
3. Klik op **Installeren**.
4. Er verschijnt een nieuw menu **Redirects** in de backoffice, met vier tabbladen: Dashboard, Rules, 404 Log en Import / Export / Settings.

De installatie maakt drie tabellen aan: `ps_dfredirects_rule` (de regels), `ps_dfredirects_notfound` (de gelogde 404's) en `ps_dfredirects_slug_snapshot` (de momentopnamen van de URL's vóór een wijziging). Bij het verwijderen worden die tabellen en de volledige configuratie gewist.

**Vereisten:** minimaal PrestaShop 8.0 en PHP 8.1 of hoger. De module werkt op PrestaShop 9 op dezelfde manier.

## Configuratie

Ga naar **Redirects → Import / Export / Settings**. De beschikbare parameters:

- **Log 404 errors**: hoofdschakelaar van de 404-logger.
- **Log bot 404s**: al dan niet de verzoeken van bekende robots opnemen (Googlebot, Bingbot, GPTBot, ClaudeBot en dergelijke). Aanbevolen: uit, om het logboek schoon te houden.
- **Auto-redirect on slug change**: schakelt het automatisch aanmaken van een 301 bij een URL-wijziging in.
- **Preserve query string by default**: de standaardwaarde van het veld preserve_qs voor nieuwe regels.
- **404 log retention (days)**: hoelang de 404-logs bewaard blijven vóór het automatisch opruimen. 0 schakelt het opruimen uit.
- **Default HTTP code**: de code voor automatisch aangemaakte regels (301 aanbevolen).
- **Ignored URL patterns**: één patroon per regel, gematcht op deelstring. Bijvoorbeeld `.well-known`, `wp-admin` of `autodiscover`. De overeenkomstige URL's worden nooit gelogd.

## Een redirectregel maken

Klik in **Redirects → Rules** op **New rule**. Elke regel bevat:

- **Source URL**: de URL die u wilt onderscheppen (relatief pad, bijvoorbeeld `/oude-pagina`).
- **Match type**: exact, wildcard of regex (zie hieronder).
- **Target URL**: de bestemming (een relatief pad of een absolute URL voor een extern domein). Laat leeg voor een 410-code.
- **HTTP code**: 301 (permanent, aanbevolen voor SEO), 302 (tijdelijk), 307 of 308 (die de HTTP-methode behouden) of 410 (inhoud definitief verwijderd, zonder doel).
- **Preserve query string**: staat dit aan, dan gaat `?utm_source=x` mee naar het doel.
- **Shop / Language**: het bereik van de regel. 0 betekent alle winkels of alle talen.
- **Note**: vrij veld voor uw eigen aantekeningen.

### Exact matchen

De opgevraagde URL moet exact met de bron overeenkomen (na normalisatie: kleine letters, zonder query string, zonder slotslash). Dat is het snelste type: een geïndexeerde lookup in de database, met een constante kost ongeacht de grootte van de tabel.

### Wildcard matchen

De ster `*` vangt om het even welke reeks op. De gevangen delen hergebruikt u in het doel met `$1`, `$2` en zo verder.

```
Bron  : /oude-categorie/*
Doel  : /nieuwe-categorie/$1

/oude-categorie/mijn-product  →  /nieuwe-categorie/mijn-product
```

### Regex matchen

Volledige PCRE-syntaxis tussen tilde-scheidingstekens. De vangende groepen gebruikt u met `$1`, `$2` en zo verder. Gebruik de klasse `[0-9]` voor cijfers (gelijk aan de afkorting met backslash-d).

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

/product/42/super-product  →  /p/42-super-product
```

De modificator `e` (codeuitvoering) wordt uit veiligheidsoverwegingen automatisch weggehaald. Ongeldige regexregels worden bij het aanmaken en bij het importeren geweigerd.

## Automatische redirects bij een slugwijziging

Staat de optie aan, dan legt de module de URL van elk object vast vóór de bewerking (hook `UpdateBefore`), vergelijkt hij die erna (hook `UpdateAfter`) en maakt hij een 301-redirect aan als de URL is veranderd. Dat werkt voor producten, categorieën, CMS-pagina's, fabrikanten en leveranciers, voor elke actieve taal en winkel.

Bij het **verwijderen** van een product ontstaat een redirect naar zijn standaardcategorie. Bij het verwijderen van een categorie gaat die naar de bovenliggende categorie. Bestaat er geen zinvol doel, dan is de terugval de startpagina.

### Ketens en lussen opsporen

Bestaat er een regel A→B en wijzigt u de slug van B in C, dan werkt de module regel A automatisch bij zodat die rechtstreeks naar C wijst (recursieve oplossing, maximaal 5 niveaus). Regels die zo zijn bijgewerkt, krijgen de vermelding `[chain-fix]` in hun notitie. Lussen (A→B→A) worden opgemerkt en het aanmaken wordt geweigerd.

Automatische redirects ontstaan alleen als de `link_rewrite` van het object in de betrokken taal is ingevuld. Misvormde URL's (segmenten die uitsluitend uit cijfers en koppeltekens bestaan) worden geweigerd.

## 404-bewaking

Elke niet-gevonden pagina komt in **Redirects → 404 Log** terecht, met de URL, de referrer, de user-agent, het IP-adres, een hitteller en de datum van het laatste bezoek. Het standaardfilter verbergt de bots en de al opgeloste vermeldingen.

### Een redirect maken vanuit een 404

Klik bij een 404-vermelding op de actie **Create redirect**. De module doorzoekt uw catalogus en stelt tot 5 waarschijnlijke doelen voor (producten, categorieën, CMS-pagina's), gerangschikt op gelijkenis met een visuele score. Kies een suggestie of voer een eigen URL in, kies de HTTP-code en bevestig: de regel wordt aangemaakt en de 404 als opgelost gemarkeerd.

## CSV-import en -export

### Formaat van het bestand

```
source_url,target_url,match_type,http_code,id_shop,id_lang,preserve_qs,active,note
/oude-pagina,/nieuwe-pagina,exact,301,0,0,1,1,migratie 2026
/producten/*,/products/$1,wildcard,301,0,0,1,1,nl naar en
~^/cat-([0-9]+)/$~,/category/$1,regex,301,0,0,1,1,numerieke ids
```

Alleen de kolommen `source_url` en `target_url` zijn verplicht (het doel is optioneel bij een 410-code). De scheidingstekens komma, puntkomma, tab en pipe worden automatisch herkend. De optie **Update existing rules** zet UPSERT aan: een bron die al bestaat, wordt bijgewerkt in plaats van overgeslagen.

Het importrapport toont hoeveel regels zijn geïmporteerd, bijgewerkt en overgeslagen, en de fouten per regel (ongeldige regex, ontbrekende bron en dergelijke).

### Export

De knop **Download CSV** exporteert alle regels als UTF-8 met BOM, meteen te openen in Excel.

## Dashboard

Het dashboard toont: het aantal actieve regels (met het automatisch aangemaakte aandeel), het totale aantal geserveerde redirects, het aantal onopgeloste 404's, de 404-trend over 30 dagen, de top 5 van de meest voorkomende 404's, de top 5 van de meest gebruikte redirects en de lijst met dode regels (meer dan 90 dagen geleden aangemaakt en nooit geactiveerd), die in aanmerking komen om te verwijderen zodat de tabel licht blijft.

## Problemen oplossen

### Mijn redirect wordt niet uitgevoerd

- Controleer of de regel **actief** is en of het winkel- en taalbereik bij het verzoek past.
- Exacte regels worden vóór de wildcard- en regexregels beoordeeld: ga na of een exacte regel uw patroon niet afdekt.
- Leeg de PrestaShop-cache (`var/cache/`).

### Te veel 404's van bots

Zet **Log bot 404s** uit in de instellingen, of voeg patronen toe bij **Ignored URL patterns** (bijvoorbeeld `.well-known`, `wp-` of `autodiscover`).

### De automatische redirect is niet aangemaakt bij een slugwijziging

- De automatische redirect komt er alleen als de `link_rewrite` daadwerkelijk verandert: alleen de naam aanpassen volstaat niet.
- Controleer of de optie **Auto-redirect on slug change** aanstaat.
- Was het object uitgeschakeld of was zijn `link_rewrite` leeg in de betrokken taal, dan is er geen momentopname gemaakt.

## Changelog

### 1.0.1, 11 mei 2026

- Controle van de gegenereerde URL's vóór het opslaan: misvormde bronnen worden geweigerd.
- De generatie wordt overgeslagen als de link_rewrite leeg is voor de huidige taal of winkel.

### 1.0.0, 11 mei 2026

- Eerste versie: redirectmotor (exact, wildcard en regex), 404-bewaking, automatische redirects, CSV-import en -export, suggesties en dashboard.
