Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: sivu.php => /sivu

Sivun loppuun

Macro [01.12.2009 13:01:56]

#

Terve

Pitäisi saada sivut toimimaan siten, että sivu.fi/sivu.php toimisi myös sivu.fi/sivu. Lisäksi GET-datan pitäisi olla sivu.fi/sivu/nimi/arvo. Minulla on jossain versio, joka toimii tuon ensimmäisen asian kanssa, mutta kansioihin ei pääse ja data on sivu?nimi=arvo. Osaisiko joku auttaa?

(Tietenkin sillä mod_rewritellä...)

ankzilla [01.12.2009 17:30:52]

#

Haku => linkit siisteiksi
https://www.ohjelmointiputka.net/koodivinkit/25051-php-linkit-siisteiksi-ilman-mod-rewriteä

Edit: Kyllä ton pitäisi toimia, paitti ilman mod_rewriteä.

Macro [01.12.2009 18:26:39]

#

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^s/(.*)$ $1.php [L]

Tälläisen sain tehtyä. Nyt toimii sivu.fi/s/tiedosto, mutta en saa millään tuota s/-kohtaa pois. Tuloksena aina error 500. Miten korjaan asian?

Metabolix [01.12.2009 19:00:06]

#

Kokeilepa muuttaa säännöllistä lauseketta niin, ettei se ohjaa php-sivuja uudestaan. Jos nimessä ei koskaan ole pistettä, tämänkin pitäisi riittää:

RewriteRule ^([^.?]*)(([?].*)?)$ $1.php$2 [L]

Macro [02.12.2009 11:37:43]

#

Mahtavaa, kiitos! Tuo ei vielä toimi halutulla tavalla. GET-datan saa sivu?nimi=arvo, mutta sen tulisi olla sivuni/get-datan-nimi/arvo. Miten tuota tulisi muuttaa?

Muokkaus. Jos menee suoraan osoitteeseen sivu.fi, niin tulee error 404. Jos menee sivu.fi/index, niin näytetään index.php sivu. Joku varmaan kysyy heti, että onko DirectoryIndexissä kirjotettu oikeat tiedot, joten vastaan että siellä index.php heti ensimmäisenä.

Macro [02.12.2009 14:42:32]

#

Koitin lisätä ennen tuota Metabolixin neuvomaa riviä kohdan:

RewriteRule ^search/(.+)$ search.php?search=$1 [L]

Tämä toimii hyvin (sivu.fi/search/tieto), mutta kaikki muun dokumentin rakenne jää pois. Tämä ei löydä enään style-tiedostoja jotka on linkitetty sivuun.

Muokkaus. Sain tuon toimimaan (Lisäsin tyylitiedoston nimen eteen ../../), mutta yksi asia mietityttää edellisen viestin muokkauskohdan lisäksi: Miten saan formin lähettämään datan osoitteeseen sivu.fi/search/hakusana tämän sivu.fi/search/?search=hakusana sijaan?

Metabolix [02.12.2009 14:50:17]

#

Vaihda lausekkeen ensimmäinen *-merkki +-merkiksi, niin tyhjää osoitetta ei yritetä muuntaa.

Jälkimmäinen ongelma taas johtuu siitä, että selain luulee todella saavansa sivun /search/termi, joka olisi siis eri hakemistossa. Yksi ratkaisu on aloittaa kaikki osoitteet /-merkillä:

<a href="/muu/index.php">Linkki osoitteeseen http://palve.lin.fi/muu/index.php mistä tahansa alihakemistosta.</a>

Macro [02.12.2009 14:55:59]

#

Kiitos, nyt toimii "tyhjällä" osoitteellakin =) Tuon seuraava olisi pitänyt keksiä itse... Mutta, miten se formi saadaan lähettämään se data oikeaan osoitteeseen?

Metabolix [02.12.2009 15:08:54]

#

Sama homma pätee formin actioniin.

Macro [02.12.2009 15:11:16]

#

En ihan ymmärtänyt, sillä formin lähetyksessä pitäisi saada ?search= pois, ja niin että se toimisi /search/hakusana. En onnistunut tuolla tyylillä saamaan sitä. Saan tämän korkeintaan lähettämään datan osoitteeseen /search/?search=hakusana, kun sen pitäisi olla juuri tuo /search/hakusana

Metabolix [02.12.2009 15:29:42]

#

Niinpä, juu. Ajattelin eri asiaa. Tuo ei valitettavasti ole mahdollista kuin JS:llä formin onsubmit-tapahtumassa tai lähettämällä lomake tuollaisenaan PHP-sivulle, josta Location-otsikolla ohjataan "korjattuun" osoitteeseen.

Macro [02.12.2009 15:32:51]

#

Äsh! Ei tullut taaskaan mieleen, että voihan siinä jotain toistakin kieltä käyttää, kuten juuri PHP:tä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta