
WWW-sivujen osotteet siistiksi
Taso: Helpohko (Perusasiat tulisi tietää!)
Inhottaako, kun käytät
dynaamista sivujärjestelmää, rumat ja mahdollisesti pitkät osoitteet? No, siihen on ratkaisu, helppo sellainen.
Osa 1Teet tiedoston
.htaccess ja mitä sinne kirjoitetaan tulee tässä:
Lainaa:
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?sivu=$1 [NC]
Tässä kohtaa pitää huomoida
RewriteBase ensimmäiseksi. Jos sinulla on tunnus jostakin, esim. jouluserveriltä tai servut.uksesta niin pelkkä / ei riitä, vaan siinä pitää olla
/TUNNUKSESI/ jotta se toimii.
Toisena asiana pitää huomoida paksunnettu kohta koodista. Jos olet tehnyt sen oppaan alussa linkitetyn oppaan mukaan niin sitä ei tarvitse muuttaa, mutta jos olet sen muuttanut esim. englanninkieliseksi jolloin se olisi "page" niin silloin se pitää vaihtaa.
Osa 2Sitten osa 2. Tässä käsitellään "monimutkaisemmat" dynaamisen järjestelmän osotteet siistiksi. Oletetaan että sinulla on oppaat -osio, jossa olisi osoite ennen ollut
index.php?sivu=oppaat&opas={oppaan_nimi} ja haluat sen siistiksi osoitteeksi:
/oppaat/{oppaan_nimi}/. Se tapahtuu siis näin:
Kirjoitetaan alla oleva koodi edellisen
Rewrite Rule;n alle:
Lainaa:
RewriteRule ^([a-zA-Z0-9_-]+)/[a-zA-Z0-9_-]+)/?$ index.php?sivu=$1&opas=$2 [NC]
Samat jutut huomioidaan kuin ylemässäkin eli paksunnetut kohdat. Jos kyse ei ole oppaista, vaan esim. arvosteluista ja "dynaaminen osoite" on ollut
index.php?sivu=arvostelut&arvostelu={arvostelu} niin
opas tilalle tulee
arvostelu.
Jos kysyttävää niin kysykää! (;
TroubleshootingJos tunnuksella tai palvelimella on eri sivuja tai esim. keskustelu foorumi ja siellä ei sivut toimi niinkuin pitäisi, koska nk. pääsivulla on tämä käytössä niin sen saa korjattua näin:
Teet
.htaccess tiedoston kansioon jossa lukee:
Jos tulee Internal Server Error viestiä sivuille mentäessä niin kokeile seuraavaa:
- Lisää johonkin kohtaa
.htaccess tiedosto rivi
Koodi:
Options -MultiViews
- Varmista, että et ole typottanut mitään.
- Varmista, että .htaccess tiedostot ovat käytettävissä. Eli Apache 2:n VirtualHost konfiguraatiossa on
AllowOverride All- Apacheen on asennettu mod rewrite (roottina a2enmod rewrite).
(Lisätty 22.1.2013)