Väsään nettisivua, jossa käyttäjät katselevat tietokannasta kaivettavaa sisältöä tietyn tunnisteen perusteella. Siis tähän tapaan:
http://www.example.com/index.php?id=tunniste
Tämä on perinteinen tapa. Tarkoitus kuitenkin olisi, että käyttäjät näpyttelevät osoitteita käsin (kyseessä on vähän urlinlyhennyspalvelun tyylisesti jutusta), joten osoitteista pitäisi karsia kaikki turha pois. Ideaalitapaus olisi näin:
http://www.example.com/tunniste
Onneksi tämä on helppo toteuttaa, tekemällä pieniä muutoksia .htaccess-tiedostoon.
.htaccess
Hakemiston .htaccess-tiedostosta pitää tehdä tällainen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Tässä kytketään päälle Apachen mod_rewrite-moduuli (peruskauraa, pitäisi löytyä ihan joka paikasta, jos ei löydy, urputa ylläpitäjälle kunnes löytyy) ja sen jälkeen asetellaan vähän ehtoja. RewriteCond-rivit varmistavat, että skripti ei blokkaa pääsyä olemassa oleviin tiedostoihin ja hakemistoihin. Jos haettu osoite (esimerkissä siis /tunniste) ei viittaa mihinkään olemassaolevaan tiedostoon (!-f) tai hakemistoon (!-d), voidaan jatkaa.
RewriteRule-rivi ohjaa sitten kaikki pyynnöt index.php-tiedostoon. Nyt siis kirjoitti osoitteeksi mitä tahansa, se ohjataan index.php:hen, mikäli kyseessä ei ole olemassaoleva tiedosto (tässä tapauksessa esimerkiksi joku kuva tai css-tyylitiedosto).
Tämä koodi on muuten kopioitu suoraan WordPressin tekemästä .htaccessista — WordPress käyttää samaa systeemiä nätteihin permalinkkeihin.
PHP-koodi
Osoite, jolla index.php haettiin, selviää PHP:ssa näin:
$id = str_replace('/', '', $_SERVER['REQUEST_URI']);
if ($i = strpos($id, '?')) $id = substr($id, 0, $i);
Nyt haluttu tunniste on muuttujassa $id. Ensimmäinen rivi kaivaa pyynnön URI:n $_SERVER-muuttujasta ja poistaa alusta tarpeettoman kauttaviivan. Toinen rivi siivoaa mahdolliset muuttujat perästä (jos tunniste on muotoa /tunniste?parametri=arvo, tuon jälkeen jää vain tunniste) — parametrithan saa sitten luettua kätevämmin $_REQUEST-muuttujasta.
Ja näin on selvillä tunniste, jolla voi sitten tehdä jotain hauskaa.
Tämä saitti käyttää Thesis-teemaa
Jos et ole PHP-, HTML- tai CSS-guru, Thesis tarjoaa runsaasti mahdollisuuksia muokata blogin ulkoasua ilman mitään muutoksia koodiin. Kehittyneille käyttäjille tarjolla on todella laajat mahdollisuudet kustomoida sivustoa kattavien koukkujen ja suodattimien avulla.
Jos olet asiantuntija, pystyt tekemään todella siistiä jälkeä, kiitos Thesiksen erinomaisten käyttöohjeiden ja laadukkaan tukifoorumin. Saat kaiken oman koodin siististi yhteen tiedostoon. Voit käyttää Thesiksen luotettavaa pohjaa ja teräksistä typografiaa kerta toisensa jälkeen ja tehdä silti aivan erinäköisiä sivustoja. Lue lisää Thesiksestä:


{ 0 comments… add one now }