Jak v Drupalu na elegantní přesměrování adres do archivu starého webu

Nedávno jsem spouštěl jeden nový web na Drupalu, který má výrazně odlišnou strukturu obsahu i adres od toho, co na stejné adrese běželo doposud. Požadavek zadavatele byl přesunout starý web na jinou adresu a odkazy vedoucí do stránek starého webu sem přesměrovat.

Neřešme prosím, co taková úprava může udělat s pozicemi webu ve vyhledávačích. Nový web má některé adresy stejné, typicky pro stránky s představením firmy a seznam produktů. Něco se liší (profily jednotlivých osob ve firmě), něco zcela chybí (některé články v blogu související s činností, kterou firma utlumila).

Celý původní web byl přesunut na jinou adresu (řekněme archiv.nejakadomena.cz, přičemž stávající web běží na nejakadomena.cz). Pokud to bylo možné, ručně se upravily odkazy v těle převedených textů ze starého systému, tak aby fungovaly v rámci nového webu na Drupalu.

U adres, které vedou na starý, nepřeváděný nebo nepřevoditelný obsah (původní web byl deset let starý a dost divoce vytvořený v PHP bez rozumné struktury), byl požadavek, aby se přesměrovaly na starý web v archivu.

První, co mě napadlo, byla úprava v .htaccess, nicméně hned druhá myšlenka byla, že je to nemožné. Pokud máte, řekněme deset adres, které na novém webu chcete přesměrovat někam pryč, jen aby ty adresy návštěvníka někam dovedly a nezobrazila se chybová hláška o nenalezené stránce, je zapsání pravidel do .htaccess rozumný způsob.

Já měl těch adres desítky až stovky, navíc jsem netušil, co všechno starý web porůznu zobrazí, pokud se zavolají jeho adresy s určitým parametrem (byť v podobě čisté URL). Netušil to ani zadavatel. Nakonec jsem tedy sáhl po modulu, který dovede přesměrovat všechny adresy vedoucí v Drupalu na nenalezenou stránku, na jiný web.

Redirects 404

Šikovný modul Redirects 404 dělá právě popsané. Zjistí, že uživatel přistupuje na adresu, která v rámci dané instalace Drupalu neexistuje. V závislosti na nastavení se podívá na jiné weby a pokud tam daná adresa existuje, uživatele přesměruje. Pokud ne, zobrazí standardní chybové hlášení o nenalezené stránce, nebo uživatele přesměruje natvrdo někam jinam.

Co se mi líbí, tak Redirects 404 můžete použít nejenom pro přesměrování na subdoménu či jinou doménu, ale i do podadresáře. V pravidlu, kde nastavení redirektu připravujete, totiž pracujete s tokenem obsahujícím původní požadovanou adresu bez domény.

Příslušné nastavení najdete v administrační části Konfigurace > Systém > Redirect 404.

Drupal a nastavení modulu Redirects 404

Pokud se tedy chystáte spouštět nový web a starý ponechat někde v archivu, doporučuji na tento modul kouknout.

Tip: pro přesměrování celé domény by se vám mohla hodit služba Redirect.Host a můj návod jak přesměrovat doménu i bez hostingu.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

návštěvník

Děkuju moc, tohle mi ušetří spoustu času. :)

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz