Generátor přesměrování .htaccess
Vygeneruj přesměrování 301 a 302 pro .htaccess nebo Nginx, vynuť HTTPS a www, přesuň doménu a uprav lomítka s kontrolou smyček a řetězců.
Nejprve si zazálohuj aktuální konfiguraci a před přepnutím na 301 testuj s 302: prohlížeče trvalá přesměrování ukládají do mezipaměti.
Kontroly
Žádné problémy nenalezeny.
Jak používat generátor přesměrování .htaccess
- Vyber Server: Apache (.htaccess) nebo Nginx, potom Typ přesměrování: 301 – trvalé nebo 302 – dočasné.
- Do Přesměrování stránek napiš jedno přesměrování na řádek: starou cestu, mezeru a novou URL, například
/stara-stranka.html /nova-stranka/. Funguje také tabulátor, čárka nebo->a můžeš vložit celé staré adresy URL nebo existující řádkyRedirect 301 /a /b. - Volitelně zadej Tvoje doména (volitelné) (například
example.com), aby přesměrování stránek vedla rovnou na konečnou adresu. - V části Kanonická adresa zaškrtni Vynutit HTTPS a vyber Vynutit www, Odstranit www nebo Ponechat www beze změny. V části Lomítko na konci vyber, zda se má přidat, nebo odstranit.
- Pokud se celý web přestěhoval, vyplň Přesunout celou doménu údaji Stará doména a Nová adresa (absolutní URL) a nech zaškrtnuté Zachovat cestu, aby každá stránka skončila na svém protějšku.
- Přečti si Kontroly, pak pravidla Kopírovat nebo Stáhnout. Pomocí Načíst příklad si zobrazíš kompletní konfiguraci.
Všechno se generuje ve tvém prohlížeči; nic, co zadáš, se neodesílá na server.
Jak vygenerovaná pravidla fungují
Pro Apache nástroj píše pravidla mod_rewrite, začínající jediným RewriteEngine On. Každá stránka se stane pravidlem RewriteRule, jehož vzor začíná ^/?, takže funguje v souboru .htaccess (kde se úvodní lomítko odstraňuje) i v bloku <VirtualHost>. Tečky, závorky, znaménka plus a další znaky regulárních výrazů ve tvých cestách se escapují a mezera se změní na \x20. V nové URL se escapují $ a %, protože by je Apache bral jako zpětné odkazy, a příznak NE brání tomu, aby Apache URL kódoval podruhé.
RewriteRule nikdy nevidí řetězec dotazu. Když stará adresa jeden obsahuje, například /product.php?id=42, nástroj přidá řádek RewriteCond %{QUERY_STRING} ^id=42$ a příznak QSD, takže se staré parametry zahodí, místo aby se zkopírovaly na novou stránku.
Pravidla jsou seřazena tak, aby se předešlo zbytečným skokům: nejdřív přesun domény, potom přesměrování stránek, pak lomítko na konci a nakonec HTTPS a www. HTTPS a www řeší jedno pravidlo, takže http://www.example.com vede na https://example.com jediným přesměrováním. Pokud je tvá doména známa, přesměrování stránek a lomítek už míří na konečnou adresu HTTPS.
Pro Nginx se HTTPS, www a přesuny domén stanou samostatnými bloky server s return 301 a přesměrování stránek se stanou řádky rewrite, které vložíš do hlavního bloku server. Spouštějí se před porovnáním location, takže mají přednost i před pravidlem lomítka na konci. Znak ? na konci cíle zabrání Nginxu připojit starý řetězec dotazu, když to není žádoucí.
Prováděné kontroly
- Stránka, která se přesměrovává sama na sebe, nebo dvě stránky, které se přesměrovávají navzájem (smyčka končící hlášením „příliš mnoho přesměrování“).
- Řetězce typu A → B → C: nasměruj A rovnou na C, protože každý další skok zpomaluje návštěvníky a plýtvá rozpočtem procházení.
- Stejná stará adresa uvedená dvakrát, kde by platilo jen první pravidlo.
- Cíl, který není ani absolutní URL, ani cesta začínající
/, nebo cílhttp://či se špatným www na tvé vlastní doméně. - Nastavení lomítka na konci, které by cíl přesměrovalo znovu nebo ho poslalo zpět na zdroj.
Časté dotazy
Mám použít 301, nebo 302?
Použij 301, když je přesun trvalý: vyhledávače přenesou signály staré stránky na novou a aktualizují svůj index. Použij 302 pro dočasné změny, například údržbu nebo krátkou kampaň. Prohlížeče přesměrování 301 ukládají do mezipaměti, takže nejdřív testuj s 302.
Kam mám umístit soubor .htaccess?
Do kořenové složky webu (často public_html nebo www), vedle index.php nebo index.html. Stažený soubor se jmenuje htaccess.txt; přejmenuj ho na .htaccess nebo vlož pravidla na začátek svého stávajícího souboru. Originál si zazálohuj.
Proč používat RewriteRule místo Redirect 301?
Řádky Redirect pocházejí z modulu mod_alias a běží v jiné fázi než RewriteRule. Kombinace obou v jednom souboru ztěžuje předvídání pořadí. Použití pouze mod_rewrite udrží všechna pravidla v jedné předvídatelné posloupnosti a umožní porovnávat řetězce dotazu.
Po vynucení HTTPS web hlásí „příliš mnoho přesměrování“. Proč?
Za load balancerem, CDN nebo proxy, které ukončují HTTPS, vidí Apache každý požadavek jako obyčejné HTTP, takže %{HTTPS} je vždy vypnuto. V takovém případě testuj místo toho předávanou hlavičku, například RewriteCond %{HTTP:X-Forwarded-Proto} !https, nebo zapni přesměrování v CDN.
Mění tento nástroj můj server?
Ne. Pouze generuje text ve tvém prohlížeči. Nic se nikam neodesílá a ty sám rozhoduješ, kde a jak se pravidla nainstalují.
Související nástroje
- Generátor robots.txt Vytvoř platný soubor robots.txt se skupinami user-agentů, pravidly Allow a Disallow, mapami webu a crawl-delay a s kontrolou běžných chyb.
- Generátor značek hreflang Vygeneruj značky hreflang pro vícejazyčné stránky jako HTML link, položky mapy webu XML nebo hlavičku HTTP Link, s kontrolou kódů ISO a zpětných odkazů.
- Generátor meta tagů Bezplatný generátor meta tagů pro titulek, meta description, kanonickou URL, robots a viewport s kontrolou délky a správně escapovaným HTML.
- Kódování a dekódování URL Bezplatné kódování a dekódování URL. Procentově zakóduj parametry dotazu či celé adresy, dekóduj sekvence %XX a zpracuj + jako mezeru. Běží v prohlížeči.