Onnistuuko mitenkään seuraava: www-sivuston yksi kansio on salasanasuojattu htaccess -menetelmällä ja kyseisen kansion sisässä on toisia kansioita. Yhteen näistä kansioista pitäisi sallia pääsy. Onnistuuko mitenkään htaccess -tiedostoilla vai pitääkö minun siirtää ko. kansio pois suojatun kansion sisästä? Tämä vain aiheuttaisi aika paljon lisätyötä..
Rams kirjoitti:
Onnistuuko mitenkään htaccess -tiedostoilla
ei onnistu. PHP:lla voi lukea suojatuista kansiosta tietoa. Auttaisiko tämä mitenkään?
Laitat sinne kansioon, minkä pitää näkyä oman .htaccess tiedoston, jossa ei ole salasanasuojausta... En tiedä toimiiko ihan suoraan noin, mutta kyllä tuo on mahdollista.
kasetti -> kansiossa on pelkkiä kuvia jotka olisi tarkoitus näyttää ei-suojatussa-osiossa sivustoa. Ei taida onnistua PHP:llä?
ajv -> jos tuohon kansioon laittaa oman htaccess -tiedoston niin ohittaako se silloin olemassa olevan suojauksen? Ja mitä tuohon htaccess -tiedostoon tulisi laittaa? Koetin googlettaa mutta ei löytynyt oikein mitään mistä olisin ratkaisua löytänyt. Jotain Allowoverride -juttua oli mistä mitään ymmärtänyt..
Auttakaa, asialla olisi vieläpä kiirekin..
Kyllä sen pitäisi jotenkin onnistua myös alkuperäisen kansion .htaccess määrityksillä. Ehkä jotain seuraavan tyylistä:
<Directory "/sivuni/suojattu/avoin"> Order allow,deny Allow from all </Directory>
Tai jotain vastaavaa, en tosiaan tarkemmin osaa sanoa kun en jaksa alkaa kokeilemaan enkä tuollaisia virityksiä ole pahemmin tehnyt.
Tuo AllowOverride kertoo, menevätkö alikansiossa olevan .htaccessin säännöt aiemman päälle. Voit kokeilla laittaa siihen yläkansiossa olevaan .htaccessiin tämän rivin:
AllowOverride All
Alakansioon jonka haluat laittaa saataville, laitat .htaccessin joka antaa pääsyn kaikille.
riippuu varmaan vähän myös siitä että miten palvelimelle on sallittu noitten .htaccess tiedostojen käyttö.
Pystyykö esim. imagecreatefromjpeg funktiolla lukemaan suojatusta kansiosta?
Ei onnistu nyt mikään. Kokeilin JTS:n neuvoa sekä Tempfilen neuvoa ja kummassakin tapauksessa tulee Server Error! Error 500.
Heti jos htaccess -tiedostoon laittaa AllowOverride All tulee Server error.
Kokeilin myös seuraavaa kuvat sisältävään kansioon eli tein sinne oman htaccess -tiedoston jossa oli
<Files *>
allow from all
</Files>
Ei pelaa tuokaan. Ei ilmoita server erroria mutta ei myöskään salli kansioon menemistä. Huh, meneepä tämä vaikeaksi..
Voi olla, että palvelimelta on säädetty että tuota allowoverridea ei voi käyttää. Jos sinulla on PHP käytössä, kannattaa kuskata kuvat sen kautta. Se onnistuu, kun teet PHP-filun, joka lataa kuvan GET-parametrin perusteella. Silloin on helppo linkittää kuviin img-tageistakin.
Tempfile -> mitenkähän tuo käytännössä menisi? En ole mikään php guru joten ei ihmeisiin pysty ;)
no tee esimerkiksi nayta.php tiedosto palvelimellesi jonka sisältö olisi tämä:
<?php if($_GET['kuva'] != "") { if( file_exists("/polku/" . $_GET['kuva'] . ".jpg") ) { echo '<img src="/polku/" . $_GET['kuva'] . ".jpg">'; } else { die("Kuvaa ei löydy!"); } } else { die("Parametri puuttuu."); } ?>
sitten viritys toimisi näin:
www.osote.com/nayta.php?kuva=testi
Tuo tuomaksen koodi ei toimi, sehän tulostaa linkin kuvaan kun pitäisi tulostaa itse kuva. Se täytyy hoitaa tällä tavalla:
<?php $filu = $_GET['kuva']; $kuva = imagecreatefromjpeg("polku_kuvakansioon/".$filu.".jpg"); header("Content-type: image/jpeg"); imagejpeg($kuva); imagedestroy($kuva); ?>
Tuota ei kuitenkaan pidä käyttää sellaisenaan, muokkaa polut tilanteeseen sopivaksi ja lisää tarkistuksia tuohon $_GET-muuttujan luokse(esim. tuomaksen koodissa olevat, riippuu tilanteesta) Minulta on turha täysin valmista koodia odottaa.
Kuvan näyttö tapahtuu niin, että tallennat tuon filun johonkin kansioon, jota .htaccess ei suojaa. Sitten muutat sivun linkit muotoon:
<img src="phpskripti.php?kuva=filun_nimi" />
Hmm, nyt on sellainen tilanne että sivulle luetaan php:llä html-koodia ja tuossa koodissa on img -tägit jotka koettavat lukea kuvia tuosta salatusta kansiosta.
Menee vähän hankalaksi edellisten viestien kautta alkaa hommaa tekemään..
Olisiko muita ajatuksia miten homma hoituisi?
Teet vain tuon minun esimerkkini mukaisesti, muutat ne skriptin tuottamien img-tagien src:t vain osoittamaan tuohon PHP-filuun kuten edellä näytin.
Rams kirjoitti:
.... Onnistuuko mitenkään htaccess -tiedostoilla ...
Kokeile laittaa siihen alikansioon:
RewriteEngine Off
Ei toiminut RewriteEngine Off.
Kysyy tunnuksia.
Tempfile -> kiitos neuvosta mutta ei pysty toteuttamaan tavallasi.
Jotain muuta vielä täytyisi kokeilla..
Aihe on jo aika vanha, joten et voi enää vastata siihen.