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ä...)
Haku => linkit siisteiksi
https://www.ohjelmointiputka.net/koodivinkit/
Edit: Kyllä ton pitäisi toimia, paitti ilman mod_rewriteä.
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?
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]
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ä.
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?
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>
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?
Sama homma pätee formin actioniin.
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
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.
Äsh! Ei tullut taaskaan mieleen, että voihan siinä jotain toistakin kieltä käyttää, kuten juuri PHP:tä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.