Pravidla se zapiují do httpd.conf (pokud máte přístup), nebo do .htaccess
# presmerovani
RewriteEngine on
RewriteRule pozadovany-soubor\.html
/vysledny-soubor.html
[R]
------------------------------------------
# podstrčení (není tam to [R])
RewriteEngine on
RewriteRule
zadana-stranka\.html
podstrcena-stranka.html
------------------------------------------
# Jednoduchý regulérní výraz
RewriteEngine on
RewriteRule
(.*)
http://www.example.com
[R]
Pravidlo, které všechno z aktuálního adresáře (ve kterém je .htaccess) přesměruje na hlavní stránku www.example.com
------------------------------------------
# konečně něco použitelného - např přesměrování článků
RewriteEngine on ^
clanek-
(.*)
skript.php?id=
$1
uživatel si vyžádá url třeba
clanek-
543
mod_rewrite to uvidí a všimne si, že to odpovídá regulárnímu výrazu
^
clanek-
(.*)
. Závorce
(.*)
totiž odpovídá libovolný počet znaků, a odpovídá mu tedy i řetězec "
543
". Závorka se uloží do proměnné
$1
(jednička, protože je to první závorka).
mod_rewrite dále podstrkává uživateli obsah, který najde na adrese
skript.php?id=
$1
což nyní odpovídá adrese
skript.php?id=
543
, protože
$1
se rovná
543
(tuto složitou adresu s otazníkem a parametry uživatel vůbec neuvidí, jedná se o skryté url, i když je funkční)
uživatel dále vidí na konci adresy v prohlížeči clanek-543 (je to tedy podstrkávání)
------------------------------------------
# Změna dynamických adres na statické
Následující použití ukazuje jednoduchý příklad přechodu na přepisované adresy. Původní adresy byly typu /index.php?page=neco - rádi bychom /neco.html skrytě přepsané na fungující skript.
Pro zachování odkazů z jiných webů a vyhledávačů (ale se snahou o propagaci nové podoby adres) vytvoříme přesměrování na nové adresy.
Protože v RewriteRule nelze testovat parametry za otazníkem (query string), musíme použít pomínku RewriteCond s testováním této proměnné.
Pokud má požadovaný tvar, bude kontrolovat následující pravidlo. V něm vytáhneme ozávorkovanou část z poslední použité podmínky díky %1.
Za koncovku .html přidáme ještě onen otazník, aby se automaticky nepřidal query string. Další pravidlo je už klasické - skrytý přepis statické adresy na dynamickou.
Přidáme však nějaký parametr (v našem případě rw=1), aby se přepisování necyklilo.
Pokud to máme v nějakém adresáři, odkomentujte druhý řádek s RewriteBase a napište tam správnou cestu toho adresáře. Pro kořenový adresář tedy použijte /.