Jak fungují přesměrování domén?
Existuje mnoho možností, jak přesměrovat domény nebo subdomény do jiné části vašeho webu nebo na externí adresu. Přesměrování se často provádí pomocí souboru .htaccess, skriptu PHP, meta tagů HTML a JavaScriptu.
K čemu se používají přesměrování domén?
Přesměrování se používá k informování serverů, že obsah webu byl přesunut z jedné URL adresy na jinou. To je nutné v případě, že původní webová adresa je cílem příchozího odkazu, byla uložena v počítači uživatele nebo by mohla zaujmout významné místo na stránkách výsledků vyhledávače (SERP). V takovém případě přesměrování sdělí prohlížeči nebo webovému robotu, že obsah byl přesunut, a místo toho poskytne uživateli odkaz na novou adresu. Bez přesměrování by návštěvníci webu namísto hledané stránky narazili na stránku s chybou 404.
To je něco, čemu se komerční webové projekty chtějí zejména vyhnout. Online obchody nabízejí neustále se měnící sortiment produktů, které jsou zobrazeny na různých webových stránkách. Jakmile je některý produkt již nedostupný, potenciální zákazníci jsou přesměrováni na stránku s podobnými produkty. To vám umožňuje efektivně řídit tok návštěvníků a minimalizovat míru okamžitého opuštění stránky.
Když nastavíte přesměrování domény, můžete stejný obsah zpřístupnit také na různých webových adresách. Všechny alternativní adresy jsou jednoduše přesměrovány na požadovanou doménu webové stránky, která je nezávislá na konkrétní adrese URL nebo cestě, kterou uživatelé zadávají.
Jaké typy přesměrování domén existují?
Obecně se rozlišuje mezi přesměrováním na straně klienta a na straně serveru. Při přesměrování domény na straně serveru se odpovídající kódy stavu HTTP přenášejí do uživatelských agentů (prohlížečů nebo webových robotů). U přesměrování na straně klienta je situace trochu jiná. Provádí se bez jakékoli odezvy, což znamená, že se nevydávají žádné kódy stavu. Proto není přesměrování na straně klienta podporováno všemi uživatelskými agenty. Tato nepříjemnost může někdy vést k situacím, kdy návštěvníci zůstanou na původní stránce a nejsou nikam přesměrováni. Nevýhody jako tyto jsou důvodem, proč se pro přesměrování často upřednostňuje možnost na straně serveru. Řešení na straně klienta by se měla používat pouze v případě, že přesměrování domény na straně serveru bylo z technických důvodů vyloučeno.
Dalším typem přesměrování domény je transparentní nebo neviditelné přesměrování. U tohoto typu přesměrování se URL nemění. Pokud jde o přesměrování domény s maskováním, URL adresa zobrazená uživateli se nemění, i když byl klient přesměrován na jinou doménu a je mu zobrazen obsah jiné webové stránky. Jelikož však tento typ přesměrování může způsobit potíže s indexováním a způsobem zobrazení URL adresy v prohlížeči, nedoporučuje se jej používat, pokud nejsou zavedena určitá omezení.
Chcete nastavit přesměrování domény? V následujícím článku centra nápovědy IONOS se dozvíte, jak krok za krokem přesměrovat svou doménu na jinou doménu.
Přesměrování na straně serveru
Ve většině případů se přesměrování domény na straně serveru provádí prostřednictvím konfiguračního souboru .htaccess nebo skriptu PHP. Tyto metody umožňují individuálně definovat, který stavový kód HTTP má být zobrazen uživatelskému agentovi. To umožňuje provozovatelům webových stránek označit přesměrování domény jako trvalé nebo dočasné. K tomu se používají stavové kódy HTTP 301 a 302.
- 301 – Trvale přesunuto: Požadovaný zdroj je nyní trvale dostupný pod přesměrovanou adresou URL. Stará adresa URL bude od tohoto okamžiku neplatná. V tomto případě je nutné použít přesměrování 301.
- 302 – Dočasně přesunuto: Požadovaný zdroj je k dispozici pod přesměrovanou URL adresou. Na rozdíl od kódu 301 zůstává původní URL adresa i nadále platná.
Pokud není stavový kód HTTP explicitně definován, webový server vydá stavový kód 302 během přesměrování na straně serveru. To není vždy nutné, proto je nejlepší ručně zadat požadovaný stavový kód pro každé přesměrování, protože to pomáhá snížit pravděpodobnost výskytu chyb indexování, jako je například únos URL. Na rozdíl od přesměrování 301 informuje stavový kód 302 webové prohledávače, že původní URL adresa by měla zůstat indexována. Pokud má být toto přesměrování trvalé, adresa přesměrování konkuruje cíli přesměrování v indexu vyhledávače.
Přesměrování .htaccess
.htaccess je konfigurační soubor pro webové servery Apache. Používá se k přepsání centrálních konfigurací na úrovni adresáře. Tento soubor umožňuje provozovatelům webových stránek provádět nastavení specifická pro adresáře pro domény a jejich podadresáře. Jednou z funkcí souboru .htaccess je přesměrování jednotlivých adres na jiné URL na straně serveru.
Přesměrování domény můžete nastavit pomocí kódu v souboru .htaccess. Jakmile vložíte soubor .htaccess s následujícím kódem do hlavních adresářů, budou požadavky na původní doménu přesměrovány na straně serveru na doménu www.example.com:
Redirect 301 / http://www.example.com/apacheconfTento řádek kódu začíná číslem redirect 301 a určuje, jaký stavový kód HTTP má server vydat. Následuje cesta k obsahu, který má být přesměrován. Ve výše uvedeném příkladu je přesměrován veškerý obsah. Poslední krok je proveden, když je kompletní cílová URL přesměrována na URL uživatelského agenta: http://www.example.com.
Tato metoda umožňuje přesměrování jednotlivých souborů. Následující kód ukazuje přesměrování .htaccess z jedné webové stránky na druhou:
Redirect 301 /directory/example-document.html http://www.example.com/example.htmlapacheconfPo zpracování HTTP stavového kódu 301 se pojmenuje adresářová cesta souboru, který má být trvale přesměrován (/directory/example-document.html), a přesměrovací URL (http://www.example.com/example.html).
Takto by vypadalo trvalé přesměrování na serveru Apache s aktivním modulem mod_rewrite:
RewriteEngine On
RewriteRule ^directory/example-document.html$ http://www.example.com/example.html [L,R=301]apacheconfV řádku kódu 01 je modul mod_rewrite webového serveru Apache aktivován příkazem RewriteEngine On. Následuje RewriteRule s cestou k přesměrovacímu souboru a cílovou adresou. Symboly caret a dolar označují začátek a konec cesty a L označuje poslední pravidlo mod rewrite pro odpovídající požadavek. R=301 předává stav HTTP 301.
Při konfiguraci přesměrování domény pomocí souboru .htaccess je důležité mít na paměti, že nesprávné záznamy budou mít vážné důsledky pro fungování webových stránek. Vzhledem k tomu, že tyto změny nabývají účinnosti ihned po uložení souboru .htaccess, je třeba konfigurace vždy důkladně otestovat.
PHP přesměrování
Přesměrování domény lze provést nejen pomocí konfigurace .htaccess, ale také pomocí příkazu v PHP skriptu (např. v index.php). Následující kód ukazuje trvalé přesměrování na fiktivní cílovou URL adresu www.example.com:
<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.example.com");
exit;
?>phpPři přesměrování pomocí skriptu PHP je zamýšlený stavový kód HTTP definován pomocí funkce header ve druhém řádku kódu. V tomto příkladu má být provedeno trvalé přesměrování 301. Vzhledem k tomu, že přesměrování na straně serveru se obvykle provádí dočasně, je třeba podniknout aktivní kroky k provedení trvalého přesměrování pomocí stavového kódu 301. U trvalých přesměrování se také registruje cílová adresa přesměrování domény pomocí header. Přesměrování v tomto příkladu pak směřuje na adresu http://www.example.com. Funkce exit v řádku 04 kódu ukončí skript a zabrání provedení následujícího řádku kódu. Aby přesměrování fungovalo prostřednictvím skriptu PHP, musí být blok kódu na začátku stránky HTML. Tím se zabrání tomu, aby server přenesl obsah HTML na stránku přesměrování.
Přesměrování na straně klienta
Pokud není z technických důvodů možné provést přesměrování domény na straně serveru, mají provozovatelé webových stránek možnost použít řešení na straně klienta. K tomu lze použít meta tag HTML refresh nebo JavaScript. Nevýhodou přesměrování na straně klienta je, že servery nedodávají HTTP stavové kódy požadujícím prohlížečům nebo webovým robotům, což znamená, že nejsou explicitně informováni o přesměrování. Navíc přesměrování na straně klienta není podporováno všemi uživatelskými agenty, což znamená, že existuje riziko, že ne všichni návštěvníci webových stránek budou přesměrováni.
Přesměrování na straně klienta má negativní vliv na indexování vyhledávačů. Explicitní vyloučení z indexování prostřednictvím HTTP statusového kódu 301 se u přesměrování na straně klienta neprovádí. To může vést k tomu, že přesměrované domény budou v žebříčku vyhledávačů konkurovat cílovým doménám. Na rozdíl od přesměrování na straně serveru, které zůstává pro uživatele z velké části neviditelné, je přesměrování na straně klienta vždy spojeno se zpožděním, které si někteří uživatelé mohou všimnout.
Přesměrování pomocí meta refresh HTML
HTML meta přesměrování se provádí pomocí meta tagů s atributem http-equiv. K tomu stačí jednoduchý HTML soubor a odpovídající tag v hlavičce pro vytvoření přesměrování. Aby byli návštěvníci vašeho webu informováni o přesměrování, mělo by být v HTML dokumentu nastaveno odpovídající upozornění. Typickými příklady jsou řádky jako „Chvilku prosím počkejte. Budete přesměrováni…“. Jednoduché přesměrování domény pomocí HTML meta refresh vypadá takto:
<meta http-equiv="refresh" content="10; url=http://www.example.com/">htmlKlient je vyzván k přesměrování domény prostřednictvím meta tagu http-equiv="refresh". Jak k tomu dojde, lze definovat v atributu content. V příkladu jsou uživatelé po deseti sekundách přesměrováni na cílovou doménu www.example.com.
Přesměrování JavaScriptu
JavaScript nabízí snadnou možnost přesměrování domény na straně klienta. Stejně jako v případě meta tagu refresh by však přesměrování pomocí JavaScriptu mělo být používáno pouze v jednotlivých případech, protože tento skriptovací jazyk není z bezpečnostních důvodů podporován všemi webovými prohlížeči. JavaScript může také způsobit problémy webovým prohledávačům a uživatelům s aktivními doplňky NoScript. Takto vypadá kód pro přesměrování domény pomocí JavaScriptu:
<script>
window.location.replace('http://www.example.com');
</script>htmlNejdůležitější je zde třetí řádek kódu. V příkladu kódu se objekt window.location používá k odkazu na aktuální adresu webové stránky. Příkaz replace dává prohlížeči pokyn, aby uživatele přesměroval na cílovou doménu uvedenou v závorkách: www.example.com.