Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: mod_rewrite ongelma

SaMike [21.09.2009 22:15:38]

#

Eli mulla on nyt sivusto rakennettu sillä pohjalla, että ensimmäisessä sivutilassa jossa rakensin sen (jouluserver) kun haki esimerkiksi www.esimerkki.jouluserver.com/tiedosto ja kansiota /tiedosto ei ole olemassa niin se hakikin automaattisesti /tiedosto.php.
Nyt kun siirsin valmiit sivut maksetulle sivutilalle (suncomet) www.esimerkki.com niin siellä tämä ei toiminutkaan niin. Löysin netistä miten sen saa htaccessia käyttämällä ohjaamaan www.esimerkki.com/tiedosto => www.esimerkki.com/tiedosto.php MUTTA www.esimerkki.com/tiedosto/ palauttaa "Internal Server Error" sivun. Tämä on ongelma koska sivustoni toimii esimerkiksi näin: www.esimerkki.com/profiili/Kayttajatunnus.

Tässä .htaccess tiedostoni nyt:
AcceptPathInfo On
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Osaisiko ketään sanoa miten saan sen ohjaamaan myös /tiedosto/ => /tiedosto.php?
Myös esimerkiksi /tiedosto/jotain/lalalalalalala pitäisi ohjautuaa => /tiedosto.php

Metabolix [22.09.2009 16:23:18]

#

Etkö voisi vain lisätä osoitteisiin puuttuvat .php:t? Minulla ainakin toimii aivan hyvin osoite /sivu.php/a/b/c.

Teemu-root [23.09.2009 08:03:13]

#

Uusi palveluntarjoajasi on todennäköisesti estänyt rewriten käytön, joko vahingossa tai tahallaan. Apachessa kun on sellainen AllowOverride-määre, joka kertoo Apachelle mitä käyttäjän custom-konffeja hyväksytään htaccess-tiedostosta. Sitä voi käyttää vain hakemistokohtaisesti, yleensä VirtualHostin määrittelyn yhteydessä. Et siis voi itse laittaa sitä.

Sun pitäisi lähestyä palveluntarjoajaasi ja pyytää heitä vaihtamaan tuo AllowOverride arvoon All. Sillä voi olla useita arvoja samanaikaisesti, mutta tässä tapauksessa All korvaa kaiken muun. Tein äsken omalla palvelimellani pari testiä josko lievemmät arvot olisivat riittäneet, mutta Internal Server Erroria heittää kunnes laitan arvoksi All..

http://httpd.apache.org/docs/2.0/mod/core.html­#allowoverride

SaMike [27.09.2009 11:55:17]

#

AllowOverride on kuulemma arvossa All.

Onkohan tolle olemassa jotain asetusta, että ohjataanko /jotain => /jotain.php jos kansiota jotain ei ole olemassa? Jos pyytäisi nykyistä palveluntarjoajaa vaihtamaan kyseistä asetusta?

Teemu-root [27.09.2009 23:25:49]

#

Testailin tuota sun alotusviestissä laittamaa rewrite-pätkää ja kyllä se mun palvelimella toimii juuri niin kun pitääkin.

Palvelin on varustettu Debian 4.0 Etch-käyttiksellä ja Apache 2.2.3:lla. Mitään asetuksia en oo ton rewriten suhteen erikseen muuttanut, että kyllä sen pitäis toimia. >:o

Vastaus

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

Tietoa sivustosta