Přesměrování domény (redirect 301)

Tento druh přesměrování se využívá nejčastěji v případě, kdy pro své stránky example.com používáte více doménových názvů (aliasů). Pokud návštěvník zadá např. example.net, mělo by dojít k přesměrování URL na hlavní adresu example.com.

Redirect s kódem 301 (Moved Permanently) oznamuje prohlížeči (nebo robotům vyhledávačů), že se zadaná stránka nachází na jiné URL. Tím dojde k přesměrování.

Před používáním pravidel v .htaccess se přesvědčte, že máte soubory .htaccess aktivní. Nastavení se nachází v administraci na stránce Služby → PHP → Aktivace .htaccess (mod_rewrite).

Přesměrování na jinou doménu

máme domény example.com a example.net, které v rámci tarifu odkazují do stejného FTP prostoru. Pokud návštěvník zadá název www.example.net nebo example.net, mělo by dojít k přesměrování na www.example.com.

Pozor: pokud Váš soubor .htaccess již obsahuje nějaká RewriteRule, vkládejte následující pravidla na začátek souboru (respektive hned za direktivu RewriteBase). V opačném případě nemusí přesměrování fungovat vzhledem k předcházejícím pravidlům.

Příklad souboru .htaccess

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} example\.net$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

Řádek RewriteCond funguje jako podmínka, která musí být splněna, aby k přesměrování došlo. Nachází se zde především pro případy, kdy obě domény sdílí datový prostor. Díky tomu by docházelo k přesměrování také hlavní domény example.com, a tím nechtěnému zacyklení. Pravidlo RewriteCond nemusíte uvádět v těch případech, kdy doména má vlastní datový prostor (odděleně od cílové domény) a doménu chcete plně přesměrovat na jinou.

Výše uvedený příklad lze snadno rozšiřovat uvedením více podmínek RewriteCond - například specifikovat konkrétní subdomény, pro které bude přesměrování platné. Příklad rozšíříme o domény example.cz, example.eu a example.org, kde opět předpokládáme, že sdílí shodný datový prostor.

RewriteBase /
RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.example\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.(eu|cz|org)$ [OR]
RewriteCond %{HTTP_HOST} example\.org$ [OR]
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

V tomto případě dojde k přesměrování na www.example.com, je-li splněna kterákoliv z podmínek RewriteCond. Postupně si podmínky popíšeme:

Více o přepisovacích pravidlech naleznete v dokumentaci.

 

Související stránky

Kopírování, publikování nebo šíření obsahu není dovolené bez předchozího písemného souhlasu společnosti ONEsolution s.r.o.