Mozek je jen aparát, kterým si myslíme, že myslíme.
M. Twain
Jedná se o možnost manipulace s adresou www stránky, tak aby se ze složité adresy vznikla jednodušší - hezčí. Dynamické weby na rozdíl od těch statických impletmetují funkci zobrazení webových stránek mnohdy jen v jednom fyzickém souboru - typicky je to index.php. Ovšem adresa na tento soubor je rožiřována o několik parametrů, které specifikují např. zobrazovanou stránku, jazykovou mutaci atd. Parametry začínají za znakem otazníku v adrese. Např.:
http://www.rhaken.net/index.php?page=kontakt
Jenže právě zápis těchto parametrů není dobře zapamatovatelný, a navíc v adrese se musí používat speciální znaky jako: ? = &
Proto je lepší forma zápisu tato:
http://www.rhaken.net/kontakt
Nebo:
http://www.rhaken.net/kontakt.htm
Úpravy adres jsou umožněny již na straně webového serveru a musí být tedy podporovány tímto serverem. Pravidla se zapisují jako textový skript uložený v souboru pojmenovaném .httaccess. S webovou adresou otevírané stránky je možné provést dvě základní operace:
1) Přesměrovat na jinou adresu
2) Podstrčit místo aktuální jinou adresu (zpravidla hezčí), v adresním poli prohlížeče se zobrazí nová, ale obsah se zobrazí podle původní adresy
Tyto operace lze zkombinavat dohromady, tzn. že se nejprve adresa přesměruje jinam a pak se ještě podstrčí jiná adresa. Pravidla lze tak zkombinovat že si i mohou zacyklit. Na to pozor.
Základní příkaz pro definici pravidel:
RewriteRule Šablona Náhrada Příznaky
Šablona - zde se pomocí regulárního výrazu určí část původní adresy, které bude přepsána
Náhrada - nová podoba adresy
Příznaky - Modifikátory pravidla - zda se např. jedná o přesměrování nebo podstrčení
Příklad zápisu pro přesměrování:
RewriteRule ^index\.php$ http://www.rhaken.net/? [R]
RewriteRule - definice pravidla
^index\.php$ - regulární výraz učující jaká část adresy budou zahrnuty do pravidla
http://www.rhaken.net/$1? - adresa kam se přesměruje, $1 představuje část původní adresy, definovaná v šabloně první ozávorkovoanou částí
[R] - učuje přesměrování
Příklad pro podstrčení:
RewriteRule ^([^/]+)$ %{DOCUMENT_ROOT}/rhaken/index.php?rw=1&p=$1 [L]
[L] - učuje že se jedná o poslední pravidlo
Prakticky by tedy stačilo k vytvoření hezké URL jen podtrstčení, kdy za adresu např.:
www.rhaken.net/nazev_stranky podstrčíme (skrytě) adresu:
www.rhaken.net/index.php?p=nazev_stranky , tak aby byla obsahovala v parametru název stránky a mohla být skriptem zpracována.
To by ale znamenalo všechny interní adresy v naší prezetaci upravit na "Cool" formu. To se dá ale obejít přidáním pravidla pro přesměrování, které nejpreve původní adresu ( s parametry ) přesměruje na Cool URL a následně je zase podstrčena původní podoba. Nicméně se domnívám že je lepší mít už na www stránkách adresy v Cool formě, zejména z hlediska SEO optimalizace.
Tento článek bude doplněn o:
Popis direktivy: RewriteCond, a úprava složitějších adres.
Zdroje:
http://www.jakpsatweb.cz/server/mod-rewrite.html
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteCond
http://interval.cz/clanky/mod_rewrite-pro-hezka-url-rewritecond/
• zpět