
Ak potrebujete presmerovať svoju doménu resp. webovú stránku na inú lokalitu (doménu) pomocou súboru .htaccess, v tomto návode nájdete viacero možností ako postupovať.
Prv, než začnete
Prečítajte si návod Presmerovanie webovej stránky pomocou .htaccess, kde uvádzame všeobecné odporúčania.
Vytvorte si súbor .htaccess (aj s tou bodkou na začiatku), ak ešte nemáte tento súbor v adresári /public_html/ a otvorte si ho v programe Notepad++. Môžete použiť aj klasický Notepad vo Windows, ale Notepad++ odporúčame, je ideálny pre úpravy súborov takéhoto typu. Takže pokojne si ho stiahnite aj nainštalujte, je možné ho používať aj v slovenčine (alebo češtine, záleží aký jazyk si pri inštalácii vyberiete).
Doménu exohosting.sk budeme používať ako cieľovú, teda tú, kam presmerovanie nasmerujeme. Namiesto exohosting.sk si doplňte svoju vlastnú doménu. Ako pôvodnú lokalitu v našich príkladoch budeme používať doménu exoweb.sk.
Príklady uvádzame s protokolmi HTTPS, keďže je predpoklad, že pracujete so zabezpečenými lokalitami.
Presmerovanie na inú lokalitu
Presmerovanie na inú lokalitu v tomto kontexte znamená, že máte stránku na nejakej pôvodnej doméne, dáta stránky si skopírujete na novú lokalitu (doménu) a chcete si pôvodnú stránku presmerovať na novú lokalitu (doménu), aby ste si zachovali návštevnosť, ktorá predtým viedla na pôvodnú stránku (doménu).
Jednoduché presmerovanie celej lokality
Otvorte si súbor .htaccess v Notepad++ (ďalej editor) a vložte do neho tento kód:
RewriteEngine On RedirectMatch 301 / https://www.exohosting.sk
Súbor .htaccess uložte a nahrajte do /public_html/ adresára. Ide o najjednoduchšiu formu presmerovania, ktorá znamená, že ak navštívite svoju stránku a je jedno, či to bude hlavná doména alebo nejaká kategória (v rámci danej domény) alebo dokonca subdoména (v rámci našej infraštruktúry to takto pracuje), všetky odkazy budú presmerované na www.exohosting.sk.
Tento spôsob je vhodný vtedy, ak proste len chcete spraviť presmerovanie starej lokality a jej odkazov na novú lokalitu a nezáleží vám na štruktúre odkazov, čo znamená, že všetky možné odkazy z pôvodnej lokality (stránky) budú presmerované na hlavnú doménu novej lokality. Presmerovanie si samozrejme môžete zadať aj bez www, v závislosti od toho, akú verziu cieľovej lokality používate.
Presmerovanie hlavnej domény okrem subdomén
Nasledujúcim kódom si presmerujete hlavnú doménu (vrátane kategórií, ak sú) na novú lokalitu. V našom príklade si doménu exoweb.sk (kód určuje, že sa presmeruje bez www aj www verzia) presmerujeme na lokalitu www.exohosting.sk. Zápis bude vyzerať takto a neovplyvní subdomény, tie zostanú nepresmerované:
RewriteEngine On RewriteCond %{HTTP_HOST} ^exoweb\.sk$ [OR] RewriteCond %{HTTP_HOST} ^www\.exoweb\.sk$ RewriteRule ^(.*)$ https://www.exohosting.sk/ [L,R=301]
Samozrejme do zoznamu si môžete pridať aj vybrané subdomény. Napr. máte subdoménu test a chcete aj tú presmerovať na novú lokalitu. Skopírujte si z pôvodného súboru riadok s www na riadok nižšie, www si následne prepíšte na test a za pôvodný riadok s www dajte [OR]. Vo výsledku to bude vyzerať takto a hlavná doména (vrátane www) sa spolu so subdoménou test presmerujú na novú lokalitu:
RewriteEngine On RewriteCond %{HTTP_HOST} ^exoweb\.sk$ [OR] RewriteCond %{HTTP_HOST} ^www\.exoweb\.sk$ [OR] RewriteCond %{HTTP_HOST} ^test\.exoweb\.sk$ RewriteRule ^(.*)$ https://www.exohosting.sk/ [L,R=301]
Presmerovanie pri zachovaní štruktúry odkazov
Nasledujúci príklad nebude robiť len jednoduché presmerovania celej lokality, ale presmeruje aj štruktúru stránky. Napríklad máte na stránke exoweb.sk nainštalovaný WordPress, ktorý obsahuje hromadu článkov a chceli by ste celý WordPress preniesť napríklad na exohosting.sk, pričom chcete zachovať štruktúru odkazov na články a zároveň ich presmerovať z pôvodnej lokality.
Napr. máte odkaz:
https://exoweb.sk/2023/01/01/ahoj-svet/
a potrebujete, aby tento odkaz bol presmerovaný na novú lokalitu uvedenú nižšie:
https://exohosting.sk/2023/01/01/ahoj-svet/
Do súboru .htaccess (nachádzajúci sa v public_html domény exoweb.sk) vložte nasledujúci kód:
RewriteEngine On RedirectMatch 301 /(.*)/(.*)/(.*)/(.*)$ https://www.exohosting.sk/$1/$2/$3/$4/
Kód zverejnený vyššie presmeruje články, ale ignoruje presmerovanie hlavnej stránky (domény), ktorú treba špeciálne zadať, tak si ju do súboru .htaccess doplníme. Nasledujúci kód presmeruje hlavnú doménu a všetky články na novú lokalitu exohosting.sk:
RewriteEngine On RewriteCond %{QUERY_STRING} ^$ RewriteRule ^$ https://exohosting.sk/? [R=301,L] RedirectMatch 301 /(.*)/(.*)/(.*)/(.*)$ https://www.exohosting.sk/$1/$2/$3/$4/
Podobne môžete vyriešiť aj presmerovanie kategórií, napr.:
RewriteEngine On RewriteCond %{QUERY_STRING} ^$ RewriteRule ^$ https://exohosting.sk/? [R=301,L] RedirectMatch 301 /(.*)/(.*)/(.*)/(.*)$ https://www.exohosting.sk/$1/$2/$3/$4/ RedirectMatch 301 /category/(.*)$ https://www.exohosting.sk/category/$1/
Pri vytváraní presmerovaní takéhoto druhu si musíte podľa štruktúry odkazov upraviť samotný kód presmerovania. Tak napríklad, keď články vo WordPress majú štruktúru v tvare /2023/01/01/ahoj-svet/ teda /rok/mesiac/deň/názov/ v samotnom kóde si musíte vytvoriť štyri * záznamy ako v príklade vyššie a taktiež štyri $ záznamy.
Pri vytváraní odkazov pre súbor .htaccess si môžete pomôcť online generátormi, napr. https://www.301-redirect.online/htaccess-rewrite-generator, ktoré vám pomôžu si vytvoriť také presmerovania, aké potrebujete, prípadne si môžete pomôcť manuálom k mod_rewrite. Odporúčame, aby ste si vždy .htaccess súbor otestovali, ideálne v inkognito režime prehliadača.
Pozrite aj tento článok
Pozrite aj tento článok