Přesměrování URL pomocí .htacess
Když dojde k nahrazení starého webu nebo zrušení článku, je důležité původní odkazy přesměrovat. K tomu slouží soubor .htaccess. Ve Wordpressu píšu přesměrování URL hned od začátku souboru, protože pluginy z Wordpressu také přidávají pravidla do souboru .htaccess a pak moje přesměrování nefungovalo. Tady jsou příklady přesměrování s komentářem.
<IfModule mod_rewrite.c> RewriteEngine On # specifické výjimky jako první RewriteRule ^reference/?$ https://petrnosek.cz/o-mne/#reference [R=301,L,NE] RewriteRule ^ja-janekdo/?$ https://petrnosek.cz/ [R=301,L] RewriteRule ^anglicky-za-3-mesice/?$ https://petrnosek.cz/blog/ [R=302,L] RewriteRule ^tag/janekdo-cz/?$ https://petrnosek.cz/ [R=301,L] # Hromadné přesměrování RewriteRule ^tag/(.*)/?$ https://petrnosek.cz/blog/tag/$1/ [R=301,L] RewriteRule ^category/(.*)/?$ https://petrnosek.cz/blog/category/$1/ [R=301,L] </IfModule>
- [R=301,L] - Značí, že se jedná o trvalé přesměrování (301) a že pokud pravidlo odpovídá, další pravidla nebudou zpracovávána (L znamená 'last').
- /? řeší problém, že na konci url může být lomítko nebo nemusí. Je potřeba pokrýt oba případy.
- pokud používám v URL kotvy - znak '#', je potřeba do přesměrování napsat NE - výsledek bude [R=301,L,NE]
- pokud chci pouze dočasné přesměrování, pak se oužije kód [R=302]. Kód R=302 ve vlajkách pravidel značí, že se jedná o dočasné přesměrování. Prohlížeče obvykle na dočasné přesměrování nereagují tak striktně jako na trvalé (301) a nepamatují si ho dlouhodobě, což může být užitečné, pokud plánujete v budoucnu změnit cílovou URL.