Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Osoitteen yksinkertaistaminen

AkeMake [04.02.2011 11:42:41]

#

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. ;)

combo [04.02.2011 14:49:50]

#

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"

AkeMake [09.02.2011 19:46:30]

#

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?

Vastaus

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

Tietoa sivustosta