Generátor presmerovaní .htaccess
Vygeneruj presmerovania 301 a 302 pre .htaccess alebo Nginx, vynúť HTTPS a www, presuň doménu a oprav lomky na konci, s kontrolou cyklov a reťazí.
Najprv si zálohuj aktuálnu konfiguráciu a pred prechodom na 301 testuj s 302: prehliadače trvalé presmerovania ukladajú do vyrovnávacej pamäte.
Kontroly
Nenašli sa žiadne problémy.
Ako používať generátor presmerovaní .htaccess
- Vyber Server: Apache (.htaccess) alebo Nginx, potom Typ presmerovania: 301 – trvalé alebo 302 – dočasné.
- Do Presmerovania stránok napíš jedno presmerovanie na riadok: starú cestu, medzeru a novú URL, napríklad
/stara-stranka.html /nova-stranka/. Funguje aj tabulátor, čiarka alebo->a môžeš vložiť celé staré URL či existujúce riadkyRedirect 301 /a /b. - Voliteľne zadaj Tvoja doména (voliteľné) (napríklad
example.com), aby presmerovania stránok smerovali rovno na konečnú adresu. - V časti Kanonická adresa zaškrtni Vynútiť HTTPS a vyber Vynútiť www, Odstrániť www alebo Nechať www tak. V časti Lomka na konci vyber, či sa má pridať alebo odstrániť.
- Ak sa presunul celý web, vyplň Presunúť celú doménu s poľami Stará doména a Nová adresa (absolútna URL) a nechaj zaškrtnuté Zachovať cestu, aby každá stránka pristála na svojom ekvivalente.
- Prečítaj si Kontroly, potom pravidlá Kopíruj alebo Stiahni. Cez Načítať príklad uvidíš kompletnú konfiguráciu.
Všetko sa deje vo tvojom prehliadači. Nič, čo zadáš, sa neodosiela na server.
Ako fungujú vygenerované pravidlá
Pre Apache nástroj píše pravidlá mod_rewrite, ktoré začínajú jediným RewriteEngine On. Každá stránka sa stane pravidlom RewriteRule, ktorého vzor začína ^/?, takže funguje v súbore .htaccess (kde sa úvodná lomka odstraňuje) aj v bloku <VirtualHost>. Bodky, zátvorky, znamienka plus a ďalšie znaky regulárnych výrazov v tvojich cestách sa escapujú a medzera sa zmení na \x20. V novej URL sa $ a % escapujú, pretože by ich Apache čítal ako spätné odkazy, a príznak NE zabráni tomu, aby Apache URL kódoval druhýkrát.
RewriteRule nikdy nevidí reťazec dotazu. Ak stará adresa jeden obsahuje, napríklad /produkt.php?id=42, nástroj pridá riadok RewriteCond %{QUERY_STRING} ^id=42$ a príznak QSD, aby sa staré parametre zahodili a neskopírovali na novú stránku.
Pravidlá sú zoradené tak, aby sa predišlo zbytočným skokom: najprv presun domény, potom presmerovania stránok, potom lomka na konci a nakoniec HTTPS a www. HTTPS a www rieši jedno pravidlo, takže http://www.example.com sa presmeruje na https://example.com jediným presmerovaním. Keď je tvoja doména známa, presmerovania stránok a lomky už smerujú na konečnú adresu HTTPS.
V Nginxe sa HTTPS, www a presuny domény stanú samostatnými blokmi server s return 301 a presmerovania stránok sa stanú riadkami rewrite, ktoré vložíš do hlavného bloku server. Spúšťajú sa pred výberom location, takže majú prednosť aj pred pravidlom lomky na konci. Znak ? na konci cieľa zabráni Nginxu pripojiť starý reťazec dotazu, keď to nemá robiť.
Vykonávané kontroly
- Stránka, ktorá sa presmerúva sama na seba, alebo dve stránky presmerúvané navzájom (cyklus, ktorý skončí chybou „príliš veľa presmerovaní“).
- Reťaze typu A → B → C: nasmeruj A rovno na C, pretože každý ďalší skok návštevníkov spomaľuje a míňa rozpočet prehľadávania.
- Tá istá stará adresa uvedená dvakrát, kde by platilo len prvé pravidlo.
- Cieľ, ktorý nie je absolútnou URL ani cestou začínajúcou
/, alebo cieľ shttp://či nesprávnym www na tvojej doméne. - Nastavenie lomky na konci, ktoré by cieľ presmerovalo znova alebo ho poslalo späť na zdroj.
Často kladené otázky
Mám použiť 301, alebo 302?
301 použi pri trvalom presune: vyhľadávače prenesú signály starej stránky na novú a aktualizujú index. 302 použi pri dočasných zmenách, ako je údržba alebo krátka kampaň. Prehliadače presmerovania 301 ukladajú do vyrovnávacej pamäte, preto najprv testuj s 302.
Kam dám súbor .htaccess?
Do koreňového priečinka webu (často public_html alebo www), vedľa index.php alebo index.html. Stiahnutý súbor sa volá htaccess.txt; premenuj ho na .htaccess alebo vlož pravidlá na začiatok existujúceho súboru. Originál si zálohuj.
Prečo použiť RewriteRule namiesto Redirect 301?
Riadky Redirect pochádzajú z mod_alias a bežia v inej fáze než RewriteRule. Zmiešanie oboch v jednom súbore sťažuje predvídanie poradia. Použitie samotného mod_rewrite udrží všetky pravidlá v jednej predvídateľnej postupnosti a umožňuje porovnávať reťazce dotazu.
Môj web po vynútení HTTPS hlási „príliš veľa presmerovaní“. Prečo?
Za záťažovým balancérom, CDN alebo proxy, ktoré ukončuje HTTPS, vidí Apache každú požiadavku ako obyčajné HTTP, takže %{HTTPS} je vždy vypnuté. V takom prípade testuj radšej preposlanú hlavičku, napríklad RewriteCond %{HTTP:X-Forwarded-Proto} !https, alebo zapni presmerovanie v CDN.
Mení tento nástroj môj server?
Nie. Len generuje text vo tvojom prehliadači. Nič sa nikam neodosiela a ty rozhoduješ, kde a ako sa pravidlá nainštalujú.
Súvisiace nástroje
- Generátor robots.txt Vytvor platný súbor robots.txt so skupinami user agentov, pravidlami Allow a Disallow, sitemap a crawl-delay a s kontrolou najčastejších chýb.
- Generátor značiek hreflang Vygeneruj značky hreflang pre viacjazyčné stránky ako HTML link, záznamy XML sitemap alebo HTTP hlavičku Link, s kontrolou kódov ISO a vzájomných odkazov.
- Generátor meta tagov Bezplatný generátor meta tagov pre titulok, meta popis, kanonickú URL, robots a viewport s kontrolou dĺžky a správne ošetreným HTML kódom.
- Kódovanie a dekódovanie URL Bezplatné kódovanie a dekódovanie URL. Percentovo kóduj parametre dopytu alebo celé adresy, dekóduj sekvencie %XX a spracuj + ako medzeru. Beží v prehliadači.