Existuje mnoho možností presmerovania domén alebo subdomén do inej časti vašej webovej stránky alebo na externú adresu. Presmerovania sa často vykonávajú prostredníctvom .htaccess, skriptu PHP, meta tagov HTML a JavaScriptu.

Na čo sa používajú presmerovania domén?

Presmerovania sa používajú na informovanie serverov, že obsah webu bol presunutý z jednej URL adresy na inú. Je to potrebné v prípade, ak je pôvodná webová adresa cieľom prichádzajúceho odkazu, bola uložená v počítači používateľa alebo by mohla zaujímať prominentné miesto na stránkach s výsledkami vyhľadávania (SERP). V tomto prípade presmerovanie oznamuje prehliadaču alebo webovému robotovi, že obsah bol presunutý, a namiesto toho poskytuje používateľovi odkaz na novú adresu. Bez presmerovaní by návštevníci webovej stránky namiesto stránky, ktorú hľadajú, narazili na stránku s chybou 404.

To je niečo, čomu sa komerčné webové projekty chcú vyhnúť. Online obchody ponúkajú neustále sa meniaci sortiment produktov, ktoré sú zobrazené na rôznych webových stránkach. Akonáhle nie je produkt dostupný, potenciálni zákazníci sú presmerovaní na stránku s podobnými produktmi. To vám umožňuje efektívne riadiť tok návštevníkov a minimalizovať mieru odchodov.

Keď nastavíte presmerovanie domény, môžete rovnaký obsah sprístupniť aj na rôznych webových adresách. Všetky alternatívne adresy sú jednoducho presmerované na požadovanú doménu webovej stránky, ktorá je nezávislá od konkrétnej URL adresy alebo cesty, ktorú používatelia zadávajú.

Aké typy presmerovaní domén existujú?

Všeobecne sa rozlišuje medzi presmerovaním na strane klienta a presmerovaním na strane servera. Pri presmerovaní domény na strane servera sa príslušné kódy stavu HTTP prenášajú do používateľských agentov (prehliadačov alebo webových robotov). V prípade presmerovania na strane klienta je situácia trochu odlišná. Toto presmerovanie sa vykonáva bez akejkoľvek odpovede, čo znamená, že sa nevydávajú žiadne kódy stavu. Preto nie je toto presmerovanie podporované všetkými používateľskými agentmi. Táto nevýhoda môže niekedy viesť k situáciám, keď návštevníci zostanú na pôvodnej stránke a nie sú presmerovaní nikam. Takéto nevýhody sú dôvodom, prečo sa pri presmerovaniach často uprednostňuje možnosť na strane servera. Riešenia na strane klienta by sa mali používať len vtedy, ak sú presmerovania domén na strane servera vylúčené z technických dôvodov.

Ďalším typom presmerovania domény je transparentné alebo neviditeľné presmerovanie. Pri tomto type presmerovania sa URL adresa nemení. V prípade presmerovania domény s maskovaním sa URL adresa zobrazená používateľovi nezmení, hoci klient bol presmerovaný na inú doménu a zobrazuje sa mu obsah inej webovej stránky. Keďže však tento typ presmerovania môže spôsobiť ťažkosti s indexovaním a spôsobom zobrazenia URL adresy v prehliadači, neodporúča sa, pokiaľ nie sú zavedené určité obmedzenia.

Tip

Chcete nastaviť presmerovanie domény? V nasledujúcom článku Centra pomoci IONOS sa dozviete, ako krok za krokom presmerovať svoju doménu na inú doménu.

Presmerovania na strane servera

Vo väčšine prípadov sa presmerovanie domén na strane servera vykonáva prostredníctvom konfiguračného súboru .htaccess alebo skriptu PHP. Tieto metódy umožňujú individuálne definovať, ktorý kód stavu HTTP sa má zobraziť používateľskému agentovi. To umožňuje prevádzkovateľom webových stránok označiť presmerovanie domén ako trvalé alebo dočasné. Na tento účel sa používajú kódy stavu HTTP 301 a 302.

  • 301 – Trvalo presunuté: Požadovaný zdroj je teraz trvalo dostupný pod presmerovanou adresou URL. Stará adresa URL bude od tohto momentu neplatná. V tomto prípade je potrebné presmerovanie 301.
  • 302 – Dočasne presunuté: Požadovaný zdroj je dostupný pod presmerovanou URL adresou. Na rozdiel od kódu 301, pôvodná URL adresa zostáva naďalej platná.

Ak nie je kód stavu HTTP explicitne definovaný, webový server vydá kód stavu 302 počas presmerovania na strane servera. To nie je vždy nutné, preto je najlepšie ručne zadať požadovaný kód stavu pre každé presmerovanie, pretože to pomáha znížiť pravdepodobnosť výskytu chýb indexovania, ako je napríklad únos URL. Na rozdiel od presmerovania 301, stavový kód 302 informuje webové vyhľadávače, že pôvodná URL adresa by mala zostať indexovaná. Ak má byť toto presmerovanie trvalé, adresa presmerovania konkuruje cieľu presmerovania v indexe vyhľadávača.

presmerovanie .htaccess

.htaccess je konfiguračný súbor pre webové servery Apache. Používa sa na prepísanie centrálnych konfigurácií na úrovni adresára. Tento súbor umožňuje prevádzkovateľom webových stránok vykonávať nastavenia špecifické pre adresáre pre domény a ich podadresáre. Jednou z funkcií súboru .htaccess je presmerovanie jednotlivých adries na iné URL adresy na strane servera.

Presmerovanie domény môžete nastaviť pomocou kódu v súbore .htaccess. Po vložení súboru .htaccess s nasledujúcim kódom do hlavných adresárov sa požiadavky na pôvodnú doménu presmerujú na strane servera na doménu www.example.com:

Redirect 301 / http://www.example.com/
apacheconf

Tento riadok kódu začína číslom redirect 301 a určuje, aký stavový kód HTTP má server vydať. Nasleduje cesta k obsahu, ktorý má byť presmerovaný. V uvedenom príklade je presmerovaný celý obsah. Posledný krok sa vykoná, keď je kompletná cieľová URL adresa presmerovaná na URL adresu používateľského agenta: http://www.example.com.

Táto metóda umožňuje presmerovanie jednotlivých súborov. Nasledujúci kód ukazuje presmerovanie .htaccess z jednej webovej stránky na druhú:

Redirect 301 /directory/example-document.html http://www.example.com/example.html
apacheconf

Po vybavení HTTP stavového kódu 301 sa pomenuje adresár súboru, ktorý má byť trvalo presmerovaný (/directory/example-document.html), a URL adresa presmerovania (http://www.example.com/example.html).

Takto by vyzeralo trvalé presmerovanie na serveri Apache s aktívnym modulom mod_rewrite:

RewriteEngine On
RewriteRule ^directory/example-document.html$ http://www.example.com/example.html [L,R=301]
apacheconf

V riadku kódu 01 je modul mod_rewrite webového servera Apache aktivovaný príkazom RewriteEngine On. Nasleduje RewriteRule s cestou k súboru presmerovania a cieľovou adresou. Symboly karet a dolár označujú začiatok a koniec cesty a L označuje posledné pravidlo mod rewrite pre príslušnú požiadavku. R=301 odosiela stav HTTP 301.

Pri konfigurácii presmerovania domény prostredníctvom súboru .htaccess je dôležité mať na pamäti, že nesprávne záznamy budú mať vážne dôsledky na fungovanie webovej stránky. Vzhľadom na to, že tieto zmeny nadobudnú platnosť ihneď po uložení súboru .htaccess, konfigurácie by mali byť vždy dôkladne otestované.

Presmerovania PHP

Presmerovanie domény je možné vykonať nielen prostredníctvom konfigurácie .htaccess, ale aj pomocou príkazu v skripte PHP (napr. v index.php). Nasledujúci kód ukazuje trvalé presmerovanie na fiktívnu cieľovú URL adresu www.example.com:

<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.example.com");
exit;
?>
php

Pri presmerovaní prostredníctvom skriptu PHP je zamýšľaný stavový kód HTTP definovaný prostredníctvom funkcie header v druhom riadku kódu. V tomto príklade sa má vykonať trvalé presmerovanie 301. Vzhľadom na to, že presmerovania na strane servera sa zvyčajne vykonávajú dočasne, je potrebné prijať aktívne opatrenia na vykonanie trvalých presmerovaní prostredníctvom stavového kódu 301. Pri trvalých presmerovaniach sa cieľová adresa presmerovania domény registruje aj pomocou header. Presmerovanie v tomto príklade potom smeruje na adresu http://www.example.com. Funkcia exit v riadku 04 kódu ukončuje skript a zabraňuje vykonaniu nasledujúceho riadku kódu. Aby presmerovania fungovali prostredníctvom skriptu PHP, blok kódu musí byť na začiatku stránky HTML. Tým sa zabráni serveru prenášať obsah HTML na stránku presmerovania.

Presmerovania na strane klienta

Ak nie je možné z technických dôvodov vykonať presmerovanie domény na strane servera, prevádzkovatelia webových stránok majú možnosť použiť riešenia na strane klienta. Na tento účel je k dispozícii meta tag HTML refresh a JavaScript. Nevýhodou presmerovaní na strane klienta je, že servery neposielajú HTTP stavové kódy žiadajúcim prehliadačom alebo webovým robotom, čo znamená, že nie sú explicitne informovaní o presmerovaní. Navyše presmerovania na strane klienta nie sú podporované všetkými používateľskými agentmi, čo znamená, že existuje riziko, že nie všetci návštevníci webových stránok budú presmerovaní.

Presmerovania na strane klienta majú negatívny vplyv na indexovanie vyhľadávačov. Explicitné vylúčenie z indexovania prostredníctvom HTTP statusového kódu 301 sa pri presmerovaniach na strane klienta nedeje. To môže viesť k tomu, že presmerované domény budú konkurovať cieľovým doménam, pokiaľ ide o poradie vo vyhľadávačoch. Na rozdiel od presmerovaní na strane servera, ktoré zostávajú pre používateľov z veľkej časti neviditeľné, presmerovania na strane klienta sú vždy spojené so zdržaniami, ktoré niektorí používatelia môžu nakoniec zaznamenať.

Presmerovanie prostredníctvom HTML meta refresh

HTML meta presmerovania sú implementované prostredníctvom meta tagov s atribútom http-equiv. Všetko, čo je na to potrebné, je jednoduchý HTML súbor a zodpovedajúci tag v hlavičke na vytvorenie presmerovaní. Aby boli návštevníci vašej webovej stránky informovaní o presmerovaní, malo by byť v HTML dokumente nastavené príslušné upozornenie. Typickými príkladmi sú riadky ako „Prosím, počkajte chvíľu. Budete presmerovaní…“. Jednoduché presmerovanie domény prostredníctvom HTML meta refresh vyzerá takto:

<meta http-equiv="refresh" content="10; url=http://www.example.com/">
html

Klient je vyzvaný, aby presmeroval doménu prostredníctvom meta tagu http-equiv="refresh". Ako sa to stane, je možné definovať v atribúte content. V príklade sú používatelia presmerovaní na cieľovú doménu www.example.com po desiatich sekundách.

Presmerovania JavaScript

JavaScript ponúka jednoduchú možnosť presmerovania domény na strane klienta. Rovnako ako v prípade meta tagu refresh by sa však presmerovanie pomocou JavaScriptu malo používať len v jednotlivých prípadoch, pretože tento skriptovací jazyk nie je z bezpečnostných dôvodov podporovaný všetkými webovými prehliadačmi. JavaScript môže tiež spôsobiť problémy webovým robotom a používateľom s aktívnymi doplnkami NoScript. Takto vyzerá kód pre presmerovanie domény pomocou JavaScriptu:

<script> 
window.location.replace('http://www.example.com'); 
</script>
html

Najdôležitejšia je tu tretia riadka kódu. V príklade kódu sa objekt window.location používa na odkazovanie na aktuálnu adresu webovej stránky. Príkaz replace nariaďuje prehliadaču, aby presmeroval používateľa na cieľovú doménu uvedenú v zátvorkách: www.example.com.

Prejsť na hlavné menu