Ongelma olisi siinä, että pitäisi saada osoitepalkissa oleva osoite muutettua htaccess:lla yksinkertaiseen muotoon. Olen tuossa .htaccess:n käytössä vielä ihan sormi suussa.. Yritin jotain viritellä mod_rewritella ja RedirectMatch:lla, mutta kummassakin ilman haluttua tulosta. mod_rewritella laitoin RewriteRule ^(.*)\.php$ $1.html muuttaakseni php-päätteiset tiedostot html-päätteisiksi. No, selain yritti /index.php sivulle mennessä hakea sivua /index.html, vaikka halusin sivulle mennessä selaimen näyttävän index.php:n sisällön, mutta osoiterivillä osoitteen index.html.
Tavoite on siis että haettaessa sivua index.php?page=3 selain hakee juuri tuota sivua, mutta näyttääkin osoiterivillä osoitteen page/3/.
Pitääköhän kaikki eri index.php?jotain=tulos&jotainlisaa=toinentulos osoitteet määritellä .htaccess:lla erikseen? Sellainen olisi kyllä melko kova homma eikä kuulosta kauhean järkevältä kun get-muuttujilla voi olla niin paljon erilaisia kombinaatioita. Yksinkertaisimmillaan selitettynä haluaisin vain pelkän index.php:n tapauksessa osoiteriville index.html ja muissa tapauksissa index.php? -osan pois ja muutettua & ja = merkit / merkeiksi.
Voisinko saada valmiin htaccess-koodin jonka voisi vain lisätä sivuille niin minun ei tarvitsisi enempää vaivata päätäni tällä ongelmalla? Se kun onnistuu teiltä luultavasti ihan ohimennen. ;)
Tässä sivut, joiden osoite muutetaan sijaitsevat hakemistossa "sivut" ja tämän sivun nimi, jolla osoitteet ovat on "sivu.php".
Esimerkki: http://osoite.fi/sivut/sivu.php?nsivu=kuvat uudessa muodossa: "/sivut/kuvat"
.htaccess -tiedosto sijaitsee esimerkissäni hakemistossa "sivut".
RewriteEngine On RewriteRule ^([^/\.]+)/?$ /sivut/sivu\.php\?nsivu=$1 [L]
Jos haluat nuo osoitteet html -päätteisikis, onnistuu se näin:
RewriteEngine On RewriteRule ^([^/\.]+)/?$.html /sivut/sivu\.php\?nsivu=$1 [L]
Esimerkki: http://osoite.fi/sivut/sivu.php?nsivu=kuvat uudessa muodossa: "/sivut/kuvat.html"
Jostain syystä en saa noilla esimerkeillä toimimaan.
Kokeilin localhost:ssa:
RewriteEngine On RewriteRule ^([^/\.]+)/?$ /Sivut/index\.php\?content=$1 [L]
Mutta tuo ei muuttunut esim. muotoon /Sivut/1 content:n ollessa 1. Miten sitten, kun laitan tuon nettiin ja siellä index.php on juurihakemistossa eli tuota Sivut -kansiota ei ole välissä? Lisäksi haluaisin, että tuo content on vastaavalla paikalla, kuin esimerkissä oli Sivut. Osoitteella /index.php?content=1 tulisi siis /content/1, osoitteella /index.php?page tulisi /page/ ja osoitteella /index.php?page=/content=3 tulisi /page//content/3
Apuja, rautalankaesimerkkiä tai valmista koodia?
Aihe on jo aika vanha, joten et voi enää vastata siihen.