RewriteEngine: URL siistimmäski

RewriteEngine: URL siistimmäski

Viesti SadnesS 05 Kesä 2006 21:41

Tämän ohjeen tarkoituksena on siistiä sivun URL osoitteita. Hyvänä esimerkkinä voi käyttää vaikka tätä foorumia. Tämän foorumi osoite on: http://jaari.no-ip.com/foorumi/posting. ... topic&f=28 . Mitä jos sen voisi muuttaa: http://jaari.no-ip.com/foorumi/uusi_aihe_28.html ? Vastaus: Onnistuu

Aluksi luodaan .htaccess tiedosto. Windows koneilla voi tulla herjaa tälläisestä tiedostosta, joten kannattaa vaikka luoda txt.htaccess tiedosto, siirtää se palvelimelle, muokata pois ftp ohjelmalla tuo txt pois.

Nyt sitten tekemään koodia. Avataan .htaccess ja lisätään sinne tälläinen pätkä koodia:
Koodi: Valitse kaikki
#AllowOverride All
RewriteEngine On


Jos et ole aikaisemmin käyttänyt kommentointia tiedostoissa, kannattaa se opetella nyt. Helpottaa myöhemmässä vaiheessa muokkausta ja virheiden etsintää.

Otetaan tuo aikasempi osoite esimerkkinä. Jatketaan .htaccess muokkaamista.

Lisää seuraava koodi pätkä:
Koodi: Valitse kaikki
#Foorumi
RewriteRule ^uusi_aihe_([0-9]+).html posting.php?mode=newtopic&f=$1


Tämän muokkauksen jälkeen, jos kirjoitat osoite kenttään http://jaaari.no-ip.com/foorumi/uusi_aihe_28.html pitäisi ilmestyä tämä samainen kirjoitussivu. Mutta käydään vähän koodia läpi enemmän.
#Foorumi merkinnällä kommentoin itselleni muistiin, että tämän alapuolelle tulee kaikki foorumi osion linkitykset. Helpottaa huomattavasti myöhemmän vaiheen muokkausta sekä virheiden etsintää. Mieti jos kaikki olisivat yhteen pötköön.

RewriteRule tarkoittaa, että aloitettaan osoitteen uudelleenkirjoitus. Pitää olla jokaisen linkin alussa.

^uusi_aihe_([0-9]+).html määritellään uusi sivu, jonne linkitettään. ([0-9]+) tarkoiteaan, että tähän tulee numeroja 0-9 välillä ja sitä voidaan kasvattaa.

posting.php?mode=newtopic&f=$1 on sitten se "oikea" osoite, joka on alunperin koodattu. $1 merkki lopussa tarkoittaa ensimmäistä x arvoa (huomaat sen merkityksen toisessa esimerkissä).

Näin alkaa siis olemaan ensimmäinen esimerkki käyty läpi.

Tässä vielä toinen, joka on täysin hatusta heitetty:
http://osoite/index.php?id=kayttajat&kayt=Jaska&id=10
Erittäin pitkä osoite rivi ja tuon voisi tietysti tehdä vaikka näin:
http://osoite/kayttajat/Jaska/10
Paljon siistimpi?
Tässä tulee koodi:
Koodi: Valitse kaikki
#Käyttäjät
RewriteRule ^kayttajat/([a-zA-Z]+)/([0-9]+) index.php?id=kayttajat&kayt=$1&id=$2


Uusin asia tässä oli, että voit myös käyttä erottimena / merkkiä. Ei ole pakko käyttää _ tai - jne. Toinen, oli ([a-zA-Z]+). Tällä merkataan, että tähän tule teksti sisältää vain kirjaimia, a-z pienellä ja/tai A-Z isolla.

Muistathan muokata koodisi oikean muotoiset linkit, esimerkkinä tämä viimeinen:
Koodi: Valitse kaikki
<?php
/*
Tämä on vain esimerkki
*/
$kayt = "Jaska"; //Haetaan tietokannasta
$id = "10"; //Haetaan tietokannasta
echo "Katso $kayt <a href=\"kayttajat/$kayt/$id\">profiilia</a>";
?>


Vielä viimeinen vinkki:
Voit myös käyttää tälläistä yhdistelmää: ([a-zA-Z0-9]+) :wink:

Toivottavasti saatte selvää tästä.
SadnesS
 
Viestit: 10

Viesti Lombax 05 Kesä 2006 21:55

Eikö sitä linkkiä voi laittaa vain näin Vieraile phpBB sivuilla!
Tämän sijasta http://www.phpbb.com/
Tämä oli vähän huono esimerkki, mutta jos osoitteena olisi valtavan pitkä url.
[piilotettu kuva]
Lombax GFX
I'm Back
Käyttäjän avatar
Lombax
 
Viestit: 412

Viesti SadnesS 05 Kesä 2006 22:03

Lombax kirjoitti:Eikö sitä linkkiä voi laittaa vain näin Vieraile phpBB sivuilla!
Tämän sijasta http://www.phpbb.com/
Tämä oli vähän huono esimerkki, mutta jos osoitteena olisi valtavan pitkä url.


Siis, tämän Rewrite jutun jälkeen, hakukoneet (kuten google) löytävät sivun tiedot paremmin jne. Ja onhan se mukava laittaa lyhyt linkki enemmin kuin hirveän pitkä.

Jokainen tietysti käyttäkööt tätä mihinkä haluaa :)
SadnesS
 
Viestit: 10

Viesti Lombax 05 Kesä 2006 22:05

Olet kyllä oikessa, tämän asian suhteen, muuta jokainen tekee sen tavallaan. Itse en jaksa tuohon. Olen ehkä hieman laiska.
[piilotettu kuva]
Lombax GFX
I'm Back
Käyttäjän avatar
Lombax
 
Viestit: 412

Viesti SadnesS 05 Kesä 2006 22:18

Lombax kirjoitti:Olet kyllä oikessa, tämän asian suhteen, muuta jokainen tekee sen tavallaan. Itse en jaksa tuohon. Olen ehkä hieman laiska.


Tai sitten sinun ei tarvitse käyttää tuollaista. Ei välttämättä laiskuudesta kiinni. Itselläni on tämä käytössä ja on paljon siistimmän näköistä. Mutta, jokainen käyttää jos haluaa. :D
SadnesS
 
Viestit: 10

Viesti Matso 05 Kesä 2006 23:03

Eihän tämä ole PHP:tä, tuo on ihan apachen omia scriptejä. Toimii vaikkei olisikaan php tulkkia palvelimella.
Käyttäjän avatar
Matso
 
Viestit: 4355

Viesti SadnesS 05 Kesä 2006 23:34

Matso kirjoitti:Eihän tämä ole PHP:tä, tuo on ihan apachen omia scriptejä. Toimii vaikkei olisikaan php tulkkia palvelimella.


Toimiihan tuo, oma virheeni. Tarkoitus oli aluksi tehdä tutoriaali käyttäjien hallinasta, mutta sitten muuttui mieli, joten jäi tuo PHP tuonne. :?
SadnesS
 
Viestit: 10

Viesti paavi12 16 Elo 2006 20:38

Miten noita ohjelmointeja voi tehä tai mistä niitä voi ladata? Ku me saatiin kotiin titestkari pari päivää sittne ja kun mulal joku sano että ohjelmoida.
paavi12
 
Viestit: 5

Viesti StandingInLine 16 Elo 2006 21:18

paavi12 kirjoitti:Miten noita ohjelmointeja voi tehä tai mistä niitä voi ladata? Ku me saatiin kotiin titestkari pari päivää sittne ja kun mulal joku sano että ohjelmoida.


Vaikkapa avaat Windows (?) :in muistion ja ala harjoitella jotain ohjelmointikieltä. En kyllä suosittele ehkä ihan "vielä", jos sinulla on ollut kone vasta pari päivää. Kannattaa katsoa http://www.sivut.org
[piilotettu kuva]
StandingInLine
 
Viestit: 1850

Viesti Matso 16 Elo 2006 21:35

paavi12 kirjoitti:Miten noita ohjelmointeja voi tehä tai mistä niitä voi ladata? Ku me saatiin kotiin titestkari pari päivää sittne ja kun mulal joku sano että ohjelmoida.
Ensinnäkään ohjelmointejä ei tehdä. Ne eivät ole matkapuhelimia tai tennispalloja, joita tehdään sarjatuotantona. Ohjelmointi toimii tavallaan tulkkina oman ja tietokone kielen välillä. Ohjelmoimalla voit tehdo jonkin ohjelman, jonkä sitten tulkki kääntää tietokone kielelle jotta tietokone ymmärtää, mitä haluat ohjelman tekevän. Ohjelmointi on itseasiassa paljolti englantia. Ohjelmointikielen valitseminen riippuu paljon siitä, mitä haluat ohjelmoida ja siitä riippuu myös ohjelmointiympäristö. Voit kysyä multa lisää yv:llä, jos jotain kysyttävää kenties, jos ohjelmointi kiinnostaa.
Käyttäjän avatar
Matso
 
Viestit: 4355

Viesti Matso 15 Maalis 2007 19:25

Hmm.. miksihän en saa toimimaan? Kokeilin kolmella eri servulla ja kaikilla heittää Internal Server Erroria. Kokeilin jopa valmiita esimerkkejä joissa ei pitäis olla virhettä, niin ei toimi ei :O

E: Selvis. Ongelma oli siinä, että tollanen mod_rewrite ei ollut päällä. Tuo ei näköjään ole kovin monessa paikkaa päällä.
Käyttäjän avatar
Matso
 
Viestit: 4355

Palaa alueelle Ohjelmointioppaat