Přesměrování 301, nebo 302? Drobný rozdíl, který rozhoduje

301 říká, že se stránka přestěhovala navždy, 302 že jen dočasně. Kdy použít které a proč v Apache snadno vznikne 302, i když chcete 301.

Napsal Lukáš

Počítač, notebook a tablet na stole s otevřeným webem

Při redesignu webu se řeší, aby staré adresy vedly na nové. K tomu slouží přesměrování a nejčastěji se setkáte s dvěma typy: 301 a 302. Dělají na první pohled totéž, ale říkají vyhledávači něco jiného.

Co která znamená

301 (Moved Permanently) říká: stránka se přestěhovala trvale. Vyhledávač má nahradit starou adresu novou a hodnotu, kterou stará adresa nasbírala, přenést na novou.

302 (Found) říká: stránka je dočasně jinde. Stará adresa zůstává tou hlavní a za čas se k ní vrátíte.

Pro přestavbu webu, sloučení stránek nebo změnu adres je správně téměř vždy 301. 302 se hodí tam, kde je změna opravdu dočasná, například při krátké údržbě nebo testu.

Pozor na výchozí hodnotu v Apache

V souboru .htaccess stačí jedna zapomenutá hodnota. Pokud u pravidla RewriteRule uvedete příznak R bez čísla, Apache použije 302:

RewriteRule ^stara\.html$ /nova.html [R,L]
RewriteRule ^stara\.html$ /nova.html [R=301,L]

První pravidlo vytvoří dočasné přesměrování, druhé trvalé. Rozdíl je jedno číslo a web na první pohled funguje v obou případech stejně. Pozná se až podle odpovědi serveru.

Jak to ověřit

Stačí se podívat na hlavičku odpovědi. V terminálu:

curl -I https://www.priklad.cz/stara.html

V odpovědi hledejte řádek se stavem (301 nebo 302) a hlavičku Location, která říká, kam přesměrování vede. Totéž ukáže karta Síť ve vývojářských nástrojích prohlížeče.

Řetězce a smyčky

  • Řetězec: stará adresa vede na druhou a ta na třetí. Každý skok zpomaluje načítání. Přesměrování mají vést přímo na cílovou adresu.
  • Smyčka: adresa vede sama na sebe nebo se dvě adresy odkazují navzájem. Prohlížeč to po několika pokusech vzdá a zobrazí chybu.

Na co nezapomenout

  • Pravidla patří před případná obecná pravidla pro HTTPS nebo www.
  • Po nasazení projděte staré adresy a ověřte, že vedou na správné místo.
  • Přesměrování ponechte dostatečně dlouho. Odkazy z cizích webů a záložky totiž nezmizí hned.

Přesměrování jsou nudná, ale rozhodují o tom, jestli po přestavbě zůstane to, co web léta budoval.