dfredirects: menedżer przekierowań 301
Instalacja i konfiguracja menedżera przekierowań 301 dla PrestaShop 8 i 9: reguły, wildcard, regex, monitoring błędów 404 i import CSV.
Wprowadzenie
dfredirects to kompletny menedżer przekierowań dla PrestaShop 8 i 9. Obsługuje kody HTTP 301, 302, 307, 308 i 410, oferuje trzy strategie dopasowania (dokładne, wildcard, regex PCRE), monitoruje błędy 404 i automatycznie tworzy przekierowania, gdy zmieniasz slug produktu, kategorii, strony CMS, producenta albo dostawcy.
Instalacja
- Przejdź do Moduły → Menedżer modułów → Wgraj moduł.
- Wgraj plik
dfredirects-1.0.1.zip. - Kliknij Zainstaluj.
- W back office pojawia się nowe menu Redirects z czterema zakładkami: Dashboard, Rules, 404 Log oraz Import / Export / Settings.
Instalacja tworzy trzy tabele: ps_dfredirects_rule (reguły), ps_dfredirects_notfound (zalogowane błędy 404) i ps_dfredirects_slug_snapshot (migawki adresów przed modyfikacją). Deinstalacja usuwa te tabele i całą konfigurację.
Wymagania: PrestaShop minimum 8.0, PHP 8.1 albo nowsze. Moduł działa identycznie na PrestaShop 9.
Polski sklep: interfejs back office modułu jest dostarczany po francusku i angielsku. W polskim sklepie wyświetla się w języku angielskim, dlatego w tym przewodniku nazwy zakładek i pól podajemy w oryginale. Nie ma to wpływu na działanie przekierowań, które są niezależne od języka interfejsu.
Konfiguracja
Przejdź do Redirects → Import / Export / Settings. Dostępne parametry:
- Log 404 errors: główny przełącznik loggera błędów 404.
- Log bot 404s: uwzględniać albo nie żądania znanych robotów (Googlebot, Bingbot, GPTBot, ClaudeBot i inne). Zalecane: wyłączone, aby log pozostał czytelny.
- Auto-redirect on slug change: włączenie automatycznego tworzenia przekierowań 301 przy zmianie adresu.
- Preserve query string by default: domyślna wartość pola preserve_qs dla nowych reguł.
- 404 log retention (days): czas przechowywania logów 404 przed automatycznym czyszczeniem. Wartość 0 wyłącza czyszczenie.
- Default HTTP code: kod stosowany w regułach tworzonych automatycznie (zalecane 301).
- Ignored URL patterns: jeden wzorzec na linię, dopasowanie po podciągu. Przykłady:
.well-known,wp-admin,autodiscover. Pasujące adresy nigdy nie trafią do logu.
Tworzenie reguły przekierowania
W Redirects → Rules kliknij New rule. Każda reguła zawiera:
- Source URL: adres do przechwycenia (ścieżka względna, na przykład
/stara-strona). - Match type: exact, wildcard albo regex (opis poniżej).
- Target URL: cel (ścieżka względna albo adres bezwzględny dla domeny zewnętrznej). Puste pole dla kodu 410.
- HTTP code: 301 (trwałe, zalecane pod SEO), 302 (tymczasowe), 307 i 308 (zachowują metodę HTTP), 410 (treść usunięta na stałe, bez celu).
- Preserve query string: gdy włączone,
?utm_source=xjest przenoszony do celu. - Shop / Language: zakres reguły. Wartość 0 oznacza wszystkie sklepy i wszystkie języki.
- Note: dowolne pole na Twoje adnotacje.
Dopasowanie dokładne
Żądany adres musi dokładnie odpowiadać źródłu (po normalizacji: małe litery, bez query stringa, bez końcowego ukośnika). To najwydajniejszy typ: indeksowany odczyt z bazy o stałym koszcie, niezależnie od rozmiaru tabeli.
Dopasowanie wildcard
Gwiazdka * przechwytuje dowolną sekwencję. Przechwycone fragmenty wykorzystasz w celu przez $1, $2 i kolejne.
Źródło: /stara-kategoria/*
Cel: /nowa-kategoria/$1
/stara-kategoria/moj-produkt → /nowa-kategoria/moj-produkt
Dopasowanie regex
Pełna składnia PCRE między ogranicznikami tyldy. Grupy przechwytujące wykorzystasz przez $1, $2 i kolejne. Do cyfr używaj klasy [0-9] (odpowiednik skrótu z odwrotnym ukośnikiem i literą d).
Źródło: ~^/product/([0-9]+)/(.*)$~
Cel: /p/$1-$2
/product/42/super-produkt → /p/42-super-produkt
Modyfikator e (wykonywanie kodu) jest automatycznie usuwany ze względów bezpieczeństwa. Nieprawidłowe reguły regex są odrzucane przy tworzeniu i przy imporcie.
Automatyczne przekierowania przy zmianie sluga
Gdy opcja jest włączona, moduł zapisuje adres każdego obiektu przed jego aktualizacją (hook UpdateBefore), porównuje go po aktualizacji (hook UpdateAfter) i tworzy przekierowanie 301, jeśli adres się zmienił. Działa to dla produktów, kategorii, stron CMS, producentów i dostawców, w każdym aktywnym języku i sklepie.
Przy usunięciu produktu tworzone jest przekierowanie do jego domyślnej kategorii. Przy usunięciu kategorii do kategorii nadrzędnej. Jeśli żaden sensowny cel nie istnieje, celem awaryjnym jest strona główna.
Wykrywanie łańcuchów i pętli
Jeśli istnieje reguła A do B, a Ty zmienisz slug B na C, moduł automatycznie zaktualizuje regułę A tak, aby wskazywała bezpośrednio na C (rozwiązywanie rekurencyjne, maksymalnie 5 poziomów). Reguły zaktualizowane w ten sposób mają w notatce oznaczenie [chain-fix]. Pętle (A do B do A) są wykrywane, a utworzenie reguły odrzucane.
Automatyczne przekierowania powstają tylko wtedy, gdy pole link_rewrite obiektu jest wypełnione w danym języku. Źle sformułowane adresy (segmenty złożone wyłącznie z cyfr i myślników) są odrzucane.
Monitoring błędów 404
Każda nieznaleziona strona trafia do Redirects → 404 Log wraz z adresem, referrerem, user-agentem, adresem IP, licznikiem trafień i datą ostatniej wizyty. Domyślny filtr ukrywa boty i wpisy już rozwiązane.
Tworzenie przekierowania z poziomu błędu 404
Kliknij akcję Create redirect przy wpisie 404. Moduł analizuje Twój katalog i proponuje do 5 prawdopodobnych celów (produkty, kategorie, strony CMS), uszeregowanych według podobieństwa, z wizualnym wynikiem. Wybierz propozycję albo wpisz adres ręcznie, wskaż kod HTTP i zatwierdź: reguła zostaje utworzona, a błąd 404 oznaczony jako rozwiązany.
Import i eksport CSV
Format pliku
source_url,target_url,match_type,http_code,id_shop,id_lang,preserve_qs,active,note
/stara-strona,/nowa-strona,exact,301,0,0,1,1,migracja 2026
/produkty/*,/products/$1,wildcard,301,0,0,1,1,pl na en
~^/cat-([0-9]+)/$~,/category/$1,regex,301,0,0,1,1,identyfikatory liczbowe
Obowiązkowe są wyłącznie kolumny source_url i target_url (cel opcjonalny przy kodzie 410). Separatory przecinek, średnik, tabulator i pionowa kreska są wykrywane automatycznie. Opcja Update existing rules włącza tryb UPSERT: istniejące już źródło jest aktualizowane zamiast pomijane.
Raport importu pokazuje liczbę reguł zaimportowanych, zaktualizowanych i pominiętych oraz szczegóły błędów wiersz po wierszu (nieprawidłowy regex, brak źródła i tak dalej).
Eksport
Przycisk Download CSV eksportuje wszystkie reguły w UTF-8 z BOM, gotowe do otwarcia w Excelu.
Pulpit
Pulpit pokazuje: liczbę aktywnych reguł (wraz z udziałem reguł wygenerowanych automatycznie), łączną liczbę obsłużonych przekierowań, liczbę nierozwiązanych błędów 404, trend błędów 404 z 30 dni, top 5 najczęstszych błędów 404, top 5 najczęściej używanych przekierowań oraz listę reguł martwych (utworzonych ponad 90 dni temu i nigdy nieużytych), będących kandydatami do usunięcia, aby tabela pozostała lekka.
Rozwiązywanie problemów
Moje przekierowanie się nie uruchamia
- Sprawdź, czy reguła jest aktywna i czy jej zakres sklepu i języka odpowiada żądaniu.
- Reguły dokładne są sprawdzane przed wildcard i regex: upewnij się, że reguła dokładna nie przesłania Twojego wzorca.
- Wyczyść pamięć podręczną PrestaShop (
var/cache/).
Zbyt wiele błędów 404 generowanych przez boty
Wyłącz Log bot 404s w ustawieniach albo dodaj wzorce w Ignored URL patterns (na przykład .well-known, wp-, autodiscover).
Automatyczne przekierowanie nie powstało przy zmianie sluga
- Automatyczne przekierowanie uruchamia się tylko wtedy, gdy faktycznie zmieni się
link_rewrite. Sama zmiana nazwy nie wystarczy. - Sprawdź, czy opcja Auto-redirect on slug change jest włączona.
- Jeśli obiekt był wyłączony albo jego
link_rewritebył pusty w danym języku, migawka nie została zapisana.
Historia zmian
1.0.1, 11 maja 2026
- Walidacja generowanych adresów przed zapisem: odrzucanie źle sformułowanych źródeł.
- Pomijanie generowania, gdy link_rewrite jest pusty dla bieżącego języka albo sklepu.
1.0.0, 11 maja 2026
- Wersja początkowa: silnik przekierowań (dokładne, wildcard, regex), monitoring błędów 404, automatyczne przekierowania, import i eksport CSV, sugestie, pulpit.