Hrátky s .htaccess – Nepovinné příznaky, přesměrování

Publikováno 7. 5. 2009

Ve druhém díle o .htaccess bych vás rád seznámil s nepovinnými příznaky a jak se dá přesměrovat stránka na jinou adresu a variantu s a bez www. Budeme používata zápis mod_rewrite.

Nepovinné příznaky

Nepovinné příznaky se píšou do hranatých závorek na konec řádku pravidla. Pokud chceme použít víc příznaků, oddělíme je od sebe čárkou v závorkách [L, QSA].

  • [R] – Redirect = přesměrování, může se doplnit o nepovinnou hodnotu číselného kódu od 300-400  [R=XXX].
  • [QSA] – Query string append = do přesměrované adresy přidí za otazník vše, co je za otazníkem v původním požadavku.
  • [F] – Forbidden = nastavuje kód 403 – zakázáno.
  • [G] = Stránka neexistuje a není za ní jiná alternativa.
  • [N] = Další pravidlo/restart pravidel
  • [NS] = Přeskočí vnitřní sub-požadavek interně vyvolaný serverem Apache.
  • [NC] = Při vyhodnocování regulárního výrazu nezáleží na velikosti písmen.
  • [OR] = Následující pravidlo se aplikuje při splnění této nebo následující podmínky.
  • [T=mime-type] = Nastaví mime-typ dokumentu, nemusí jít jen o mime typ souboru, ale třeba všech souborů v daném adresáři.
  • [S=n] = Přeskočí následujících n pravidel, n vyjadřuje počet pravidel.
  • [L] = Poslední pravidlo, další se již nebudou aplikovat.

Přesměrování adresy na jinou

Teď se konečně dostávám k části, která vás bude asi zajímat nejvíc. Máme stránku www.domena.cz/stranka1.html a potřebujeme jí přesměrovat na stránku www.domena.cz/stranka2.html Toho docílíme napsáním tohoto kódu do .htaccess:
RewriteEngine on
RewriteRule stranka1\.html /stranka2.html [R]

Teď když napíšete do adresního řádku adresu www.domena.cz/stranka1.html, dostanete od prohlížeče stránku www.domena.cz/stranka2.html a v adresní řádce se také zobrazí. Příznak [R] má za úkol přesměrovat dočasně, jeho výchozím kódem je 302 – dočasně přesměrováno.

Přesměrování na variantu s nebo bez WWW

Pokud jste alespoň trochu seznámeni se SEO, měli byste vědět, že mít stránku zobrazenou na variantě s www a bez ní, není dobré. Jak z pohledu ranků, tak i z možnosti vyřazení z vyhledávání. Proto je správné si zvolit jen jednu variantu (to nechám na vás, mně osobně se víc líbí varianta bez www). Při přesměrování jen na jednu variantu musíme říct vyhledáváčům, že se jedná o trvalé přesměrování. A jak na to v .htaccess? Velmi jednoduše.

Varianta s WWW:
RewriteCond %{HTTP_HOST} ^osmaa.hu.cz [NC]
RewriteRule (.*) http://www.osmaa.hu.cz/$1 [R=301,QSA,L]

Varianta bez WWW:
RewriteCond %{HTTP_HOST} ^www.osmaa.hu.cz [NC]
RewriteRule (.*) http://osmaa.hu.cz/$1 [R=301,QSA,L]

Pravidlo RewriteRule funguje pouze, pokud je splněná podmínka RewriteCond.V proměnné %{HTTP_HOST} je doménová část vyžadovaného URL.

Přesměrování na variantu bez index.html

Duplicita URL hrozí i v případě zobrazení stránky s i bez index.html. Lepší je si zvolit jen jednu variantu (a tou je určitě ta bez index.html). Toho docílíme takto:
RewriteRule index\.html / [R]

To by bylo ohledně nepovinných příznaků a přesměrování vše. Příště se můžete těšit na chybová hlášení a blokování ip adres. Ještě na závěr bych rád poděkoval Michalovi Kubíčkovi za jeho úžasnou SEO knihu, ze které jsem pro tento článek čerpal informace.


Štítky: , , , , , , ,

Napsal izmy, v kategorii Urob si sám | 2 komentáře


2 komentáře k příspěvku „Hrátky s .htaccess – Nepovinné příznaky, přesměrování”

Hyuuga Antilles

Tenhle seriál je zajímavej, fakt pěknej, jen je podle mne škoda že je tady 😀 Kdyby byl na nějakém serveru který se zaobírá čistě třeba webovým programováním, webdesignem a tak, bylo by víc lidí kteří by z toho měli užitek.

izmy

@Hyuuga Antilles: Díky, snažím se napsat hlavně takové ty základy pro začátečníky. Možná by bylo dobré články publikovat na zaměřených webech, ale chtěl jsem si to prostě napsat na blog. Nezbývá než doufam, že si mě Google oblíbí. 😀

Zanechte komentář