Nejdůležitější vlastnosti a výhody
- Adresy bez ID podle vašich vzorů — sami rozhodujete, jak bude vypadat adresa každého typu obsahu, např.
product/nazev-produktunebo — po zapnutí vzorů bez prefixu — dokoncenazev-produktu.htmlpřímo v kořenovém adresáři obchodu. - Žádná ztráta SEO při změně adres — trvalá přesměrování 301/308 z nativních adres i z každé předchozí podoby adresy přenášejí pozice vybudované ve vyhledávači na nové URL místo vytváření duplicit a chyb 404.
- Bezpečné, vratné nasazení — v obchodě se nic nemění, dokud sami neaktivujete engine; předtím vše vytváříte a kontrolujete na pozadí a návrat zpět je stejně postupný jako nasazení.
- Kompatibilita s jinými moduly bez jejich úprav — override třídy Link zajišťuje, že každý modul získávající adresy přes standardní API PrestaShopu (Google/Facebook feedy, mapy webu, moduly běžící z cronu a administrace) dostává kanonické adresy automaticky.
- Automatické řešení konfliktů názvů — když mají dvě položky stejný název, engine sám přidělí čitelnou příponu nebo nadřazenou cestu, nebo — pokud to tak nastavíte — počká na vaše rozhodnutí; nic se nepublikuje naslepo.
- Ochrana existujících podstránek — modul automaticky detekuje a rezervuje adresy obsazené samotným PrestaShopem i jinými moduly (košík, kontakt, mapa webu), takže čistá adresa produktu nikdy nepřevezme existující stránku.
- Panel srozumitelný i pro laika — dashboard s průvodcem krok za krokem, popis u každé volby, popisy stavu na každé záložce a diagnostické zprávy, které přímo říkají, co a kde kliknout, včetně opravných tlačítek na jedno kliknutí.
- Architektura fail-closed — při jakékoli chybě (poškozený registr, selhání cache, konflikt s jinou úpravou) se obchod okamžitě vrátí k nativním adresám místo toho, aby zákazníkům zobrazoval chyby.
Funkce podrobně
Vzory a tvorba adres
- Samostatný vzor adresy pro každý typ obsahu (produkty, kategorie, CMS stránky, CMS kategorie, výrobci, dodavatelé, přílohy) v každém jazyce a obchodě.
- Tokeny ve vzorech: přívětivý název, úplná cesta kategorie, nadřazená kategorie, výrobce, dodavatel, reference, jazykový prefix a další — podle typu obsahu.
- Globální politika cest: malá písmena, pouze znaky ASCII, koncové lomítko, limity délky segmentu i celé cesty, kontrola slugů složených pouze z číslic — s možností přepsání pro jednotlivé vzory.
- Vzory bez pevného prefixu (adresy přímo v kořenovém adresáři) pro PrestaShop 8.1.2 a novější, vždy ověřované předběžnou kontrolou.
- Politika adres kombinací produktu: jedna společná kanonická adresa pro všechny varianty (včetně odstranění kotvy kombinace za znakem #) nebo zachování funkčního parametru varianty.
Postupné nasazení a diagnostika
- Pět režimů enginu: vypnutý, pouze sledování, paralelní režim (staré adresy už přesměrovávají, obchod zobrazuje nativní odkazy), aktivní a nouzový „aktivní s nativním fallbackem".
- Předběžná kontrola (preflight), která blokuje aktivaci, dokud nejsou splněny všechny podmínky: kompletní registr, čerstvá validace, vyřešené kolize, dokončené úlohy, správné schéma databáze, zaregistrované hooky, žádné konflikty vzorů.
- Diagnostické zprávy ukazující přesnou příčinu a místo opravy, s tlačítky, která jedním kliknutím zařadí do fronty chybějící přestavby nebo validace přesně pro ty rozsahy, kterých se problém týká.
- Tabulka pokrytí ukazující pro každý jazyk a typ obsahu, kolik položek už má čistou adresu, a report integrity registru.
- Chráněné přechody mezi režimy — z aktivního režimu nelze omylem přeskočit do vypnutého bez ověření.
Přesměrování, aliasy a ochrana SEO
- Automatická trvalá přesměrování nativních adres s ID na kanonické adresy (301 nebo 308 dle volby), s vynecháním listingových stránek s parametry řazení a filtrů.
- Historie adres: každá změna kanonické adresy po sobě zanechá funkční přesměrování, takže záložky, reklamy a výsledky vyhledávání nikdy nevedou nikam.
- Ruční i importované aliasy s cílem ve formě objektu obchodu, libovolné URL adresy (s bezpečnostní politikou hostitelů: pouze aktuální obchod, seznam povolených HTTPS domén nebo libovolné HTTPS) nebo odpovědi 410/404.
- Kódy odpovědí pro aliasy: 301, 302, 307, 308 a také 404 a 410; odstraněné objekty vracejí volitelně 410 Gone (rychlejší vyřazení z indexu) nebo 404.
- Přesměrování zachovávají parametry kampaní (utm_source, utm_medium, utm_campaign, utm_term, utm_content), identifikátory kliknutí reklam (gclid, fbclid, msclkid) i definovaný seznam funkčních parametrů.
- Normalizace požadavků: varianty adres lišící se velikostí písmen nebo koncovým lomítkem jsou přesměrovány na jednu kanonickou podobu bez duplicitního obsahu.
- Volitelné statistiky používání přesměrování se vzorkováním — vidíte, zda ještě někdo používá staré odkazy.
Kompatibilita a integrace
- Override třídy Link: všechny moduly používající standardní API adres PrestaShopu — včetně generátorů produktových feedů a map webu běžících z administrace nebo cronu — dostávají kanonické adresy bez jakýchkoli změn ve svém kódu, s automatickým návratem k nativní adrese, když čistá adresa není dostupná.
- Veřejné API pro vývojáře: jednotlivé i dávkové získávání kanonických adres (s přednačtením registru pro generátory map webu) a hooky umožňující jiným modulům rezervovat vlastní cesty a reagovat na změny tras.
- Plná podpora multistore (konfigurace, vzory a registr pro každý obchod) a více jazyků; ve starších verzích PrestaShopu, kde to jádro vyžaduje, modul hlídá shodné vzory mezi jazyky.
- Kompatibilita: PrestaShop 1.7.x–9.x, syntaxe PHP 7.0–8.5 (v rámci požadavků používaného jádra), MySQL 5.6+/MariaDB 10.x, Apache a Nginx, obchody v podadresáři — bez Composeru a externích knihoven.
Automatizace, úlohy a výkon
- Automatická aktualizace: přidání, změna názvu nebo odstranění produktu, kategorie či stránky samo obnoví adresu a zařadí do fronty potřebné přestavby, včetně závislostí (změna kategorie obnoví produkty, změna produktu — přílohy).
- Systém úloh na pozadí: skenování, náhled (bez zápisu), přestavba, validace, zahřívání cache, import, export a úklid — prováděné v konfigurovatelných dávkách, s pauzou, obnovením, zrušením a vyčištěním celé fronty jedním tlačítkem.
- Cron jedním odkazem: adresa připravená ke zkopírování s tajným tokenem (sekce Cron v panelu, včetně instrukcí a řádku do crontabu) zpracovává frontu automaticky; překrývající se volání jsou blokována; k dispozici je také rozhraní CLI.
- Fragmentovaná souborová cache tras (konfigurovatelná velikost fragmentu a doba platnosti) s fallbackem do databáze — řešení adres nezatěžuje databázi při každém zobrazení stránky.
- Auditní log změn adres s konfigurovatelnou retencí a automatický úklid dokončených úloh a expirovaných záznamů.
- Import aliasů ze souboru CSV se samostatným náhledem a validací před zápisem (až 500 řádků na soubor, atomický zápis) a export nastavení, tras, aliasů, rezervací, kolizí a diagnostiky do JSON/CSV — bez tajných údajů a zákaznických dat.
Administrace a bezpečnost
- Přehledný panel s dashboardem (metriky registru), sbalitelným průvodcem „Jak začít — krok za krokem", který si pamatuje svůj stav, popisem stavu konfigurace na každé záložce a popisy u každé volby.
- Seznamy cest, aliasů, kolizí a úloh se standardním filtrováním PrestaShopu: jazyk a typ objektu jako výběrové seznamy, ID, cesta a slug jako textová pole, s nativní stránkováním.
- Oprávnění v souladu s profily zaměstnanců PrestaShopu (zobrazení, úpravy, mazání) vynucovaná v administraci i v každé AJAX akci.
- Zabezpečení: tokeny a podpisy administrativních požadavků, ověřování původu požadavků, porovnávání klíčů odolné proti časovým útokům, tajný provozní klíč cronu pro každý obchod, tvrdá normalizace cest odmítající řídicí znaky a dvojité kódování.
- Spolehlivost: transakční instalace s automatickým vrácením změn a obnovením předchozí konfigurace při chybě, blokace odinstalace při aktivním routingu, trvalé značky selhání vynucující bezpečný režim po kritické chybě a kompletní vyčištění tabulek a konfigurace při odinstalaci.
Požadavky
- PrestaShop 1.7.0–9.x se zapnutými přívětivými URL adresami (Parametry obchodu → Provoz a SEO).
- PHP 7.0–8.5 (verze podporovaná používaným jádrem PrestaShopu), MySQL 5.6+ nebo MariaDB 10.x.
- Bez dalších závislostí: modul nepoužívá Composer ani externí knihovny.