Čo znamená redirect .htaccess a ako ho nastaviť
Pomocou redirect .htaccess môžete presmerovať návštevníkov z jednej URL svojho webu na inú priamo na úrovni serveru (za predpokladu, že beží na Apache).
Tento spôsob je efektívny, pretože presmerovanie prebieha bez nutnosti úprav v kóde webu alebo aplikácii, čo šetrí výkon.
V .htaccess sa dajú nastaviť rôzne typy presmerovaní – napríklad presmerovanie z HTTP na bezpečné HTTPS, medzi subdoménami alebo na úplne novú URL.
Ako aktivovať redirect .htaccess
Na aktiváciu redirect .htaccess je potrebné použiť príkaz RewriteEngine on, ktorý povolí použitie prepisovacích pravidiel (rewrite rules), nevyhnutných na pokročilé presmerovanie.
Tento príkaz sa píše len raz na začiatku súboru .htaccess, za ním sa dajú pridávať jednotlivé pravidlá.
Typy presmerovaní v .htaccess
V .htaccess sa dajú nastaviť rôzne typy presmerovaní, ktoré slúžia na rôzne účely:
- 301 Permanent Redirect na trvalé presmerovanie
- 302 Temporary Redirect na dočasné presmerovanie (napr. pri úpravách stránky)
- RewriteRule pomocou mod_rewrite na pokročilejšie presmerovanie (medzi subdoménami, z HTTP na HTTPS alebo prepis permalinkov)
Príklady konkrétnych príkazov na presmerovanie
Po zapnutí RewriteEngine on môžete pridávať konkrétne presmerovanie podľa toho, čo potrebujete dosiahnuť:
301 Permanent Redirect
Redirect 301 /stara-stranka https://example.com/nova-stranka
302 Temporary Redirect
Redirect 302 /stara-stranka https://example.com/nova-stranka
Presmerovanie HTTP na HTTPS
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} !=On [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Presmerovanie HTTPS na HTTP
RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Presmerovanie subdomény do podadresára
Používa sa na presmerovanie požiadaviek na subdoménu do špecifického podadresára na hlavnej doméne (napr. shop.domena.sk → www.domena.sk/shop)
RewriteCond %{HTTP_HOST} ^shop.domena.sk$ [NC]
RewriteRule ^(.*)$ https://www.domena.sk/shop/$1 [L,R=301]
Prepis permalinkov na SEO-friendly formát
Tento príklad prepíše URL example.com/produkty/123 na produkty.php?id=123.
RewriteRule ^produkty/([0-9]+)$ produkty.php?id=$1 [L,QSA]