• Hlavní strana
  • Marketing
  • SEO
  • Jak na přesměrování nefunkčních URL přes 301 v .htaccess, když obsahují speciální znaky, tzv. Query String

Jak na přesměrování nefunkčních URL přes 301 v .htaccess, když obsahují speciální znaky, tzv. Query String

Publikováno: 22 Září 2016 | Rubrika: SEO (optimalizace webu)

Přesměrování 301 - speciální znaky v URL (Query String)

Máte na webu duplicitní nebo staré a nefunkční stránky, které potřebujete trvale přesměrovat přes kód 301 v .htaccess, ale protože se v URL adresách nachází speciální znaky a parametry (? %), tzv. Query String, známé přesměrování pomocí příkazu RewriteRule nefunguje? V tomto článku vám ukážu nejjednodušší cestu, jak tento problém vyřešit.

Před časem jsem sám řešil problém s přesměrováním starých, nefunkčních a duplicitních URL adres jednoho webu, který dlouhodobě spravuji z hlediska SEO. Web je postaven na publikačním systému Joomla, který má v některých ohledech problém s vytvářením duplicitních stránek. Duplicitní stránky se časem nakupily a mně došla trpělivost, takže byl čas na opravu.

Jak se poprat s duplicitami na webu?

Existují dvě možnosti. Buď použijete tzv. kanonizaci (rel="canonical") nebo trvalé přesměrování přes kód 301. Já osobně mám raději druhou variantu, tedy 301 v .htaccess, protože je pro mě jednodušší a efektivnější.

Co je duplicitní obsah, a jak s ním naložit, se můžete dočíst na Moz v článku What is Duplicate Content? (pouze anglicky, ale jak se používá automatický překladač snad víte). Případně si můžete přečíst detailní informace o duplicitním obsahu přímo v nápovědě Google, kde je to hezky popsáno a navíc česky.

Pojďme se tedy podívat na proces trvalého přesměrování přes 301.

Standardní přesměrování v .htaccess

Přes funkci Site Crawl v Tony McCreath jsem provedl analýzu duplicitního obsahu a stáhl jsem si tabulku s chybnými URL adresami webu. Všechny jsem nasázel do souboru .htaccess s následujícím příkazem:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domena.cz [NC]
RewriteRule ^(.*)$ http://www.domena.cz$1 [R=301,QSA,L]
Redirect 301 /polozka/nazevstranky http://www.domena.cz/
Redirect 301 /polozka/nazevstranky http://www.domena.cz/tag/osoba%20bl%C3%ADzk%C3%A1

Přečtěte si také doporučení na přesměrování od ContentKing.


Tento kód zajistí, aby:

  • domena.cz byla trvale přesměrována na www.domena.cz (RewriteCond + RewriteRule)
  • stará nebo nefunkční URL stránka /polozka/nazevstranky byla trvale přesměrována na jinou funkční URL stránku http://www.domena.cz/ (Redirect 301)

Pro speciální znaky a parametry ale přesměrování nefunguje

Jenže zde jsem narazil na to, že URL adresa, která obsahuje speciální znaky a parametry - Query String, což jsou převážně otazníky a procenta (? %), nelze pomocí tohoto příkazu přesměrovat. V mém případě se jednalo o desítky URL adres se speciálními znaky, ale v pro tento článek jsem vybral jen jednu:

http://www.domena.cz/tag/osoba%20bl%C3%ADzk%C3%A1

Problém způsobil tag s českou diakritikou, jehož originální znění bylo:

http://www.domena.cz/tag/osobablízká

Jak tedy přesměrování URL se speciálními znaky vyřešit?

Řešení existuje několik, ale většinou musíte umět programovat. Jenže já nejsem programátor, takže se mi nechtělo se pouštět do něčeho, čemu pořádně nerozumím, atak jsem začal pátrat až jsem nakonec našel super jednoduché a rychlé řešení, které fungovalo na 100%. Rád se s vámi o něj podělím.

HtAccess 301 Redirect Generator Tool

Jedná se o online generátor, který vám URL adresy se speciálními znaky převede do kódu, se kterým si už .htaccess hravě poradí. Tohoto úžasného pomocníka, který se jmenuje .HtAccess 301 Redirect Generator Tool, naprogramoval Tony McCreath.

Jak generátor funguje?

Generátor přesměrování funguje opravdu velmi jednoduše. Snažil jsem se to vyobrazit na níže uvedeném screenu. V podstatě jen zadáte odkud a kam se má přesměrování udělat a aplikace vám vygeneruje kód, který jen vložíte do svého souboru .htaccess.

Přesměrování 301 - speciální znaky v URL (Query String)

V generátoru si můžete ještě nastavit, zda chcete udělat přesměrování na www nebo z www a nabízí také možnost použití protokolu https nebo http.

Kde stáhnout generátor?

Generátor funguje v online režimu, jako webová aplikace. Je zcela zdarma, i když by si autor určitě nějakou odměnu zasloužil. Eventuálně, jak sám jeho autor píše, si ho můžete za menší poplatek koupit.

Navštivte stránku .HtAccess 301 Redirect Generator Tool, kde naleznete také návod, jak tento úžasný nástroj používat.

Doufám, že vám pomůže tak, jako mně.
Thanks a lot Tony.