E célkitűzésünk tekintetében célirányos, és jól használható összefoglalót kínál a webmania.cc alábbi cikke is: Mindezek alapján megállapíthatjuk tehát, hogy a barátságos webcímek alkalmazásának alapfeltétele, hogy rendelkezzünk egy ehhez mefelelő .htaccess állománnyal. Az alábbi blokk erre mutat egy lehetséges példát:Mit is jelentenek a barátságos URL-ek?
Egy-egy weboldal esetén általában a következőket szeretnénk megvalósítani:Egy PHP-s menüt tartalmazó weboldal egyes oldalainak címei az alábbiak mintájára alakulnak:Ez a forma nem igazán jól olvasható, és a keresőrobotok sem szeretik. Sokkal jobban nézne ki helyettük az alábbi kialakítás:
- localhost/sajatoldal/?p=aktualitasok
- localhost/sajatoldal/?p=elerhetoseg
- localhost/sajatoldal/?p=termekek&cs=kekszek
- localhost/sajatoldal/?p=termekek&cs=edessegek&t=bountycsoki
- localhost/sajatoldal/?p=termekek&cs=edessegek&t=sportszelet
Ezek a barátságos webcímek. Nyilvánvaló azonban, hogy ez az utóbb vázolt forma nem azt jelenti, hogy minden egyes URL-ben szereplő kifejezéshez tartozik egy mappa a tárhelyen. Ez valóban nincs így. De akkor hogyan lehet megoldani, hogy a szerver ne mappákat keressen az URL-ek alapján, hanem paraméterként értelmezze mindazt, ami első ránézésre mappahivatkozásnak tűnik?
- localhost/sajatoldal/aktualitasok/
- localhost/sajatoldal/elerhetoseg/
- localhost/sajatoldal/termekek/kekszek/
- localhost/sajatoldal/termekek/edessegek/bountycsoki/
- localhost/sajatoldal/termekek/edessegek/sportszelet/
Options -Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)/(.*)/(.*)/(.+)$ index.php?m1=404 [L,QSA]
RewriteRule ^(.*)/(.*)/(.*)/$ index.php?m1=$1&m2=$2&m3=$3 [L,QSA]
RewriteRule ^(.*)/(.*)/(.+)$ index.php?m1=$1&m2=$2&m3=$3 [L,QSA]
RewriteRule ^(.*)/(.*)/$ index.php?m1=$1&m2=$2 [L,QSA]
RewriteRule ^(.*)/(.+)$ index.php?m1=$1&m2=$2 [L,QSA]
RewriteRule ^(.*)/$ index.php?m1=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?m1=$1 [L,QSA]
Options -Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/(.+)$ index.php?m1=404 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/$ index.php?m1=$1&m2=$2&m3=$3 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.+)$ index.php?m1=$1&m2=$2&m3=$3 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/$ index.php?m1=$1&m2=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.+)$ index.php?m1=$1&m2=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ index.php?m1=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?m1=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
E két sor gondoskodik arról, hogy ha létezik a kért névnek megfelelő fájl (f), vagy mappa (d), akkor
a soron következő átirányítás helyett ezt a valós fájlt, vagy mappát nyissuk meg. Ez a viselkedés
érhető tetten az alábbi két hivatkozás-példa esetén:
előző oldal |
random oldal | következő oldal ![]() |