Č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] 

Posledná aktualizácia: