mod_rewrite
Seznámení s mod_rewrite
Na této stránce tohoto webu se dozvíte něco málo o mod_rewrite.
Začnu tím, že nejpoužívanějším webovým serverem je
Apache. Tento server umožňuje
přidávat rozšiřující funkce, neboli moduly. Modulů pro Apache je
nepřeberné množství, já si teď budu však všímat jen jednoho, je jím mod_rewrite
(mod_rewrite je v Apachi od verze 1.2). Modul mod_rewrite čeká
až přijde požadavek o některou stránku na serveru, následně zkontroluje její
adresu s pravidly, které jsou uloženy v souboru (např. htaccess). Pokud se v
pravidlech ona adresa nachází, aplikuje na ni konkrétní pravidlo. Je to řečeno
hodně kostrbatě, tak se to pokusím říct ještě jednou a jednodušeji. Podstata
mod_rewrite leží v souborech, či adresářích, které fyzicky na serveru
neexistují a přitom fungují jako kdyby tam byly, protože server
podstrčí uživateli existující (ale jiný) soubor (většinou dynamický).
Proč mod_rewrite použít?
- Vaše webová prezentace se přesunula na jinou adresu, mod_rewrite
umí přesměrovat na tuto adresu - Vámi vytvořené stránky mají špatně zapamatovatelnou adresu, tj. adresy s
dynamickým tvarem (např. www.mujweb.cz/odkaz.php?promena=12345) - z jakéhokoliv důvodu se chcete u souborů zbavit koncovek html, php, asp,
… - Vaše stránky mají dlouhé neúhledné adresy, které se špatně indexuje
vyhledávacím robotům
Kde si s mod_rewrite hrát?
Stručně řečeno zde platí to stejné, co pro soubor htaccess.
Měli byste to zkoušet doma na localhostu. V případě souboru mod_rewrite dochází
k chybám často (a to je hodně slabé slovo, to ale záleží na tom jak umíte
programovat). S mod_rewrite je celkem potíž, ale za zkoušku
rozhodně stojí.
Někdy taktéž může dojít k zacyklení. Nenapíše se žádná chyba, vy koukáte na
prohlížeč a nic. Mezitím se chudák server snaží, ale výsledek nedostane. A tudíž
ho ani nepošle. Tudíž to zase zopakuji, lepší je to doma zkoušet na localhostu.
Pokud následně budete mod_rewrite aplikovat na server, nezapomeňte, že server
musí obsahovat Apache, na Apachi musí být nainstalován mod_rewrite, musí být na
serveru také povolen. Také musíte mít možnost konfigurovat server (buď souborem
htaccess či httpd.conf).
Jak jsem již výše zmínil, pro používání modulu mod_rewrite na serveru
potřebujete Apache (verze 1.2 a vyšší). Pro aktivaci mod_rewrite je
důležité při startu Apache nahrát příslušný modul. Provedete to
v drtivé většině odkomentováním tohoto příkazu v souboru httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so