A legtöbb szerveren (kivételt képeznek az ingyenes szolgáltatók) lehetőség nyílik a .htaccess fájl és a mod_rewrite használatára. Ebben az a jó, hogy könnyedén készíthetünk barátságos weboldalcímeket, melyek kényelmesebbé teszik oldalunk használatát. Fontos, hogy az itt leírtak helytelen használata a szerver ideiglenes leállásához vezethet, valamint néhány szerveren kérni kell, hogy engedélyezzék a .htaccess fájlok használatát.
A kezdet
Legelőször szükségünk lesz egy .htacces fájlra. Ezt Total Commanderben, vagy valamelyik hasonló fájlkezelőben tudjuk létrehozni. A fálj neve egyszerűen .htaccess, tehát semmi nincsen a pont előtt. Ebben kapásból elhelyezzük a vizsgálatot, hogy a szerver támogatja-e a nekünk szükséges szolgáltatást:
<IfModule mod_rewrite.c>
RewriteEngine On
# ide helyezzük majd a tartalmat
</IfModule>
Ez egyelőre semmi többet nem csinál, csak ellenőrzi, hogy a mod_rewrite modul használható-e, és ha igen, akkor aktiválja azt.
A régi cím
Vegyül például (remélem nem haragszik meg érte), ahol egy bejegyzésre mutató link nagyjából így néz ki:
http://creative-x.hu/dani/index.php?bejegyzes=1&id=476
Itt a bejegyzes rész nem tudom, hogy mit jelent, de az id értelemszerűen a bejegyzés azonosítójára mutat. Ezt a rút és barátságtalan linket, most gyönyörű kedves hivatkozássá változtatjuk.
A lecsó közepe
Mondjuk az új cím kinézete legyen az, hogy /bejegyzes/id/. Ez kezdetnek megteszi, később pedig tudunk vele variálni. Az előbb elkészített fájlunkban, a megjegyzés helyére az alábbi sort szúrjuk be:
RewriteRule ^bejegyzes/([0-9]+) index.php?bejegyzes=1&id=$1
Ebben egy apró mintaillesztés található, ami mondatszerűen nagyjából úgy hangzik, hogy legyen egy bejegyzes mappa, majd azután egy per jel, és egy tetszőleges hosszúságú szám. A sima zárójelben található érték memorizálva
lesz, így erre később hivatkozhatunk. Egy szünet következik, és utána az a cím, ahová irányítunk. Ez ugye a fönt említett cím, de az id után egy $1 kerül, amiben a memorizált szám található. Ezt lementve, majd a főkönyvtárban elhelyezve tökéletes, letisztult weboldalcímet kapunk, valami effélét:
http://creative-x.hu/dani/bejegyzes/476
A befőttesüveg
Vannak ennél összetettebb példák, ahol több feltétel megadása szükséges. Szintén Dani oldalán nézelődtem, és az irattár
linkjei pont megfelelőek erre a célra. Így néz ki egy hónap elérése:
http://creative-x.hu/dani/index.php?archive=1&year=2006&month=3&page=1
Ez már kissé összetettebb, mint az előző link, így több dolgunk is lesz vele. Az archive rész újfent nem tudom mi lehet, talán a mód váltása, ez számunkra elhanyagolható, csak az átirányításnál írjuk majd be. A terv, hogy a csúnya linkből, valami ilyet csináljunk:
http://creative-x.hu/dani/irattar/2006/3/1
Ez nemcsak barátságosabb, hanem sokkal rövidebb is. A megvalósítása pedig nem sokkal bonyolultabb, mint az előző esetben. Vegyük elő a fájlunkat, és az előző sor után (tehát mindenképpen az </IfModule> elé) helyezzük el az alábbi sort (a láthatóság érdekében két sorban írom):
RewriteRule
^irattar/([0-9]+){4}/([0-9]+){2}/([0-9]+){2} index.php?archive=1&year=$1&month=$2&page=$3
Ez már kicsit bonyolultabbnak tűnik, de csak a sok zárójelnek köszönhetően
. Ismét mondatszerűen, ez annyit csinál, hogy az irattar mappából elővesz egy legalább négyjegyű számot (ezt a kapcsos zárójelek között adtuk meg), amit memorizál $1-nek. Eztán vesz két, legalább kettő jegyű számot, s ezeket $2 és $3 néven tárolja. Az így kapott eredményt pedig a fent említett hivatkozásra irányítja. Tehát az első szám lesz az év, a második a hónap, a harmadik pedig az aktuális oldal.
Meglátni és megszeretni
Az ezek, és ezekhez hasonló módszerekkel csodálatos eredményeket lehet elérni, minimális erőfeszítés mellett. A használatához persze elengedhetetlen egy minimális ismeret a mintaillesztő, azaz reguláris kifejezésekből. Ezekhez a legjobb segédlet a PHP , valamint

