En tiiä mihinköhän osastoon tääkin kuuluis, pistin tuonne "yleistä ohjelmoinista" -osaan mutta se ei näykään näköjään täällä kotisivujenteko -suunnalla joten spämmään saman viestin tännekin. Sorry.
Kyse on siis .htaccess -hommista, tarkemmin Apachen Rewrite-modulista.
Mulla ei mene tuo jakeluun:
http://www.pikseli.biz/blog/archive/2003/10/21/htaccess _haltuun/index.php?s=7 (sieltä toinen kohta, eli URL:t siistimmäksi)
Miten tuo siis KÄYTÄNNÖSSÄ menee.
Oletetaan että ollaan osoitteessa http://munsivut.net/alasivu/index.php
Jos tuohon perään nyt laitettaisiin ?page=jokusivu
niin osoitteena pitäisi näkyä http://munsivut.net/alasivu/jokusivu
Ja toisaalta jos loppuun tuleekin ?lang=en&page=jokusivu niin osoite olisi
http://munsivut.net/en/alasivu/jokusivu
Taidan olla vähän tyhmä..
Kyse on siis .htaccess -hommista, tarkemmin Apachen Rewrite-modulista.
Mulla ei mene tuo jakeluun:
http://www.pikseli.biz/blog/archive/2003/10/21/htaccess _haltuun/index.php?s=7 (sieltä toinen kohta, eli URL:t siistimmäksi)
Miten tuo siis KÄYTÄNNÖSSÄ menee.
Oletetaan että ollaan osoitteessa http://munsivut.net/alasivu/index.php
Jos tuohon perään nyt laitettaisiin ?page=jokusivu
niin osoitteena pitäisi näkyä http://munsivut.net/alasivu/jokusivu
Ja toisaalta jos loppuun tuleekin ?lang=en&page=jokusivu niin osoite olisi
http://munsivut.net/en/alasivu/jokusivu
Taidan olla vähän tyhmä..
Vastaukset 2
Vanhimmat
http://www.pikseli.biz/blog/archive/2003/10/21/htaccess_haltuun/index.php?s=7
*Oletetaan että ollaan osoitteessa http://munsivut.net/alasivu/index.php
Jos tuohon perään nyt laitettaisiin ?page=jokusivu
niin osoitteena pitäisi näkyä http://munsivut.net/alasivu/jokusivu*
Kun menet tuohon http://munsivut.net/alasivu/jokusivu osoitteeseen niin Apache tekee Rewrite-modulin ansiosta saman asian kuin olisit saanut aikases menemällä http://munsivut.net/alasivu/index.php?page=jokusivu Siis tavallaan uudelleen ohjaa sivupyynnön tuohon osoitteeseen.
Tuo pitempä osoite toimii myöskin.
Osoiteriville
http://munsivut.net/alasivu/jokusivu
RewriteRule ^alasivu/([a-z]+)$ alasivu/index.php?page=$1
RewriteRule ^alasivu/([a-z]+)/$ alasivu/index.php?page=$1
Vai haluatkos tämmösen, tällöin alasivukin muuttujana.
RewriteRule ^([a-z]+)/([a-z]+)$ $1/index.php?page=$2
RewriteRule ^([a-z]+)/([a-z]+)/$ $1/index.php?page=$2
Apache hakeekin todellisuudessa näin
http://munsivut.net/alasivu/index.php?page=jokusivu
Kaksi ehtoa siksi, että toimii myös jos osoitteen lopus /
http://munsivut.net/en/alasivu/jokusivu
RewriteRule ^(en|fi)/([a-z]+)/([a-z]+)/$ $2/index.php?lang=$1&page=$3
(en|fi) = joko en tai fi
RewriteRule ^([a-z]+)/([a-z]+)$ $1/index.php?page=$2
Purettuna
^ alusta. Siis heti heti ekan / merkin jälkeen
([a-z]+) jos kirjaimia a-z niin muuttujaan arvo. + tarkoittaa että saa olla enemmän kuin yksi kirjain
$ loppuu säännöllinen lauseke
$1 ensinmäisen muuttujan arvo, siis ekan sulkeiden.
Noita sitten voi tehdä vaikka kuinka monimutkasia, yks kätevä keino on lisätä esim ....index.php?alasivu=$1&%{QUERY_STRING}
Tällöin pystyt välittämään tietoja myös osoite rivillä http://munsivut.net/alasivu/?xxxx=yyyy
Huomioi, että voit joutua lisäämään kotisivujesi polun, näkyy esim ftp-ohjelmas
.../kotisivut/tunnuksesi/$1/index.php
Toivottavasti tuo selvitti jotain, ellei sitten sekoittanut lopullisesti