# dfredirects: gestor de redirecionamentos 301

> Introdução O dfredirects é um gestor de redirecionamentos completo para PrestaShop 8 e 9. Gere os códigos HTTP 301, 302, 307, 308 e 410, propõe três estratégias de correspondência (exata,…

- Página: <https://www.datafirefly.com/pt/documentation/dfredirects/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [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), [nl](https://www.datafirefly.com/nl/documentation/dfredirects/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Introdução

O dfredirects é um gestor de redirecionamentos completo para PrestaShop 8 e 9. Gere os códigos HTTP 301, 302, 307, 308 e 410, propõe três estratégias de correspondência (exata, wildcard, regex PCRE), vigia os erros 404 e cria automaticamente redirecionamentos quando altera o slug de um produto, de uma categoria, de uma página CMS, de um fabricante ou de um fornecedor.

## Instalação

1. Vá a **Módulos → Gestor de módulos → Instalar um módulo**.
2. Carregue o ficheiro `dfredirects-1.0.1.zip`.
3. Clique em **Instalar**.
4. Aparece um novo menu **Redirects** no back-office com quatro separadores: Dashboard, Rules, 404 Log e Import / Export / Settings.

A instalação cria três tabelas: `ps_dfredirects_rule` (as regras), `ps_dfredirects_notfound` (os 404 registados) e `ps_dfredirects_slug_snapshot` (os instantâneos de URL antes da alteração). A desinstalação elimina estas tabelas e toda a configuração.

**Pré-requisitos:** PrestaShop 8.0 no mínimo, PHP 8.1 ou superior. O módulo funciona de forma idêntica no PrestaShop 9.

## Configuração

Vá a **Redirects → Import / Export / Settings**. Os parâmetros disponíveis:

- **Log 404 errors**: interruptor principal do registo de 404.
- **Log bot 404s**: incluir ou não os pedidos dos robôs conhecidos (Googlebot, Bingbot, GPTBot, ClaudeBot, etc.). Recomendado: desativado para manter um registo limpo.
- **Auto-redirect on slug change**: ativação da criação automática de 301 na alteração de URL.
- **Preserve query string by default**: valor por defeito do campo preserve_qs para as novas regras.
- **404 log retention (days)**: duração de retenção dos registos 404 antes da purga automática. 0 desativa a purga.
- **Default HTTP code**: código usado para as regras criadas automaticamente (301 recomendado).
- **Ignored URL patterns**: um padrão por linha, correspondência por subcadeia. Exemplo: `.well-known`, `wp-admin`, `autodiscover`. Os URLs correspondentes nunca serão registados.

## Criar uma regra de redirecionamento

Em **Redirects → Rules**, clique em **New rule**. Cada regra inclui:

- **Source URL**: o URL a intercetar (caminho relativo, ex. `/antiga-pagina`).
- **Match type**: exact, wildcard ou regex (ver abaixo).
- **Target URL**: o destino (caminho relativo ou URL absoluto para um domínio externo). Vazio para um código 410.
- **HTTP code**: 301 (permanente, recomendado para SEO), 302 (temporário), 307/308 (conservam o método HTTP), 410 (conteúdo definitivamente eliminado, sem destino).
- **Preserve query string**: se ativado, `?utm_source=x` é transferido para o destino.
- **Shop / Language**: âmbito da regra. 0 = todas as lojas / todos os idiomas.
- **Note**: campo livre para as suas anotações.

### Correspondência exata

O URL pedido deve corresponder exatamente à origem (depois de normalização: minúsculas, sem query string, sem barra final). É o tipo mais eficiente: lookup indexado na base de dados, custo constante qualquer que seja o tamanho da tabela.

### Correspondência wildcard

O asterisco `*` captura qualquer sequência. As capturas são reutilizáveis no destino com `$1`, `$2`, etc.

```
Origem  : /antiga-categoria/*
Destino : /nova-categoria/$1

/antiga-categoria/o-meu-produto  →  /nova-categoria/o-meu-produto
```

### Correspondência regex

Sintaxe PCRE completa entre delimitadores til. Os grupos de captura usam-se com `$1`, `$2`, etc. Use a classe `[0-9]` para os algarismos (equivalente ao atalho barra invertida-d).

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

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

O modificador `e` (avaliação de código) é automaticamente retirado por segurança. As regras regex inválidas são recusadas na criação e na importação.

## Redirecionamentos automáticos na alteração de slug

Quando a opção está ativada, o módulo captura o URL de cada objeto antes da sua atualização (hook `UpdateBefore`), compara-o depois da atualização (hook `UpdateAfter`) e cria um redirecionamento 301 se o URL tiver mudado. Isto funciona para os produtos, categorias, páginas CMS, fabricantes e fornecedores, para cada idioma e loja ativos.

Na **eliminação** de um produto, é criado um redirecionamento para a sua categoria por defeito. Na eliminação de uma categoria, para a sua categoria pai. Se não existir nenhum destino pertinente, o recurso é a página inicial.

### Deteção de cadeias e de ciclos

Se existir uma regra A→B e alterar o slug de B para C, o módulo atualiza automaticamente a regra A para apontar diretamente para C (resolução recursiva, 5 níveis no máximo). As regras atualizadas desta forma têm a menção `[chain-fix]` na sua nota. Os ciclos (A→B→A) são detetados e a criação é recusada.

Os redirecionamentos automáticos só são criados se o `link_rewrite` do objeto estiver preenchido no idioma em causa. Os URLs malformados (segmentos compostos apenas por algarismos e hífenes) são rejeitados.

## Monitorização dos 404

Cada página não encontrada é registada em **Redirects → 404 Log** com o URL, o referrer, o user-agent, o endereço IP, um contador de hits e a data da última visita. O filtro por defeito oculta os bots e as entradas já resolvidas.

O registo de 404 guarda o endereço IP do visitante, que é um dado pessoal nos termos do RGPD. Fixe uma retenção curta (30 dias, por exemplo) em **404 log retention** e mencione este registo técnico na sua política de privacidade.

### Criar um redirecionamento a partir de um 404

Clique na ação **Create redirect** de uma entrada 404. O módulo analisa o seu catálogo e propõe até 5 destinos prováveis (produtos, categorias, páginas CMS) classificados por similaridade, com uma pontuação visual. Selecione uma sugestão ou introduza um URL manual, escolha o código HTTP, valide: a regra é criada e o 404 é marcado como resolvido.

## Importação e exportação CSV

### Formato do ficheiro

```
source_url,target_url,match_type,http_code,id_shop,id_lang,preserve_qs,active,note
/antiga-pagina,/nova-pagina,exact,301,0,0,1,1,migracao 2026
/produtos/*,/products/$1,wildcard,301,0,0,1,1,pt para en
~^/cat-([0-9]+)/$~,/category/$1,regex,301,0,0,1,1,ids numericos
```

Só as colunas `source_url` e `target_url` são obrigatórias (destino facultativo para um código 410). Os delimitadores vírgula, ponto e vírgula, tabulação e pipe são detetados automaticamente (o Excel em português exporta em ponto e vírgula). A opção **Update existing rules** ativa o UPSERT: uma origem já presente é atualizada em vez de ser ignorada.

O relatório de importação mostra o número de regras importadas, atualizadas, ignoradas e o detalhe dos erros linha a linha (regex inválida, origem em falta, etc.).

### Exportação

O botão **Download CSV** exporta todas as regras em formato UTF-8 com BOM, diretamente abrível no Excel.

## Dashboard

O painel mostra: o número de regras ativas (com a parte gerada automaticamente), o total de redirecionamentos servidos, o número de 404 não resolvidos, a tendência dos 404 em 30 dias, o top 5 dos 404 mais frequentes, o top 5 dos redirecionamentos mais usados e a lista das regras mortas (criadas há mais de 90 dias, nunca acionadas), candidatas à eliminação para manter uma tabela leve.

## Resolução de problemas

### O meu redirecionamento não é acionado

- Verifique que a regra está **ativa** e que o seu âmbito de loja / idioma corresponde ao pedido.
- As regras exact são avaliadas antes das wildcard e regex: verifique que uma regra exact não esconde o seu padrão.
- Limpe a cache do PrestaShop (`var/cache/`).

### Demasiados 404 gerados por bots

Desative **Log bot 404s** nos parâmetros, ou adicione padrões em **Ignored URL patterns** (ex. `.well-known`, `wp-`, `autodiscover`).

### O auto-redirect não foi criado na alteração de slug

- O auto-redirect só é acionado se o `link_rewrite` mudar realmente: uma alteração apenas do nome não basta.
- Verifique que a opção **Auto-redirect on slug change** está ativada.
- Se o objeto estava desativado ou se o seu `link_rewrite` estava vazio no idioma em causa, não é tirado nenhum instantâneo.

## Changelog

### 1.0.1 (11 de maio de 2026)

- Validação dos URLs gerados antes da gravação: rejeição das origens malformadas.
- Salto da geração se o link_rewrite estiver vazio para o idioma ou a loja atual.

### 1.0.0 (11 de maio de 2026)

- Versão inicial: motor de redirecionamento (exact / wildcard / regex), monitorização de 404, auto-redirect, importação/exportação CSV, sugestões, dashboard.
