.htaccess ja .htpasswd

Tässä Mod_Rewrite -oppaamme jatkoksi vielä muutamia lisävinkkejä .htaccesin käyttöön:

Uudelleenohjaukset

Luonnollisesti uudelleenohjaus toimii Mod_Rewrite:n avulla:

RewriteEngine on
RewriteRule ^vanha\.html$ uusi.html [R]

Uudelleenohjauksia voidaan tehdä myös tähän tapaan ilman Rewrite engineä:

Redirect 301 /vanha-sivu.html http://www.sivusto.com/uusi-sivu.html
Redirect 302 /vanha-sivu.html http://www.sivusto.com/uusi-sivu.html

Tämän vaihtoehdon on kuitenkin oltava sallittu httpd.conf -tiedostosta. Saat sen käyttöön “AllowOverride” -kohdasta lisäämällä “All” vaihtoehdon sen perään (AllowOverride All).

Suojaa kuviasi suoralta linkitykseltä

Mod_Rewriten avulla voit helposti suojata myös sivustosi kuvia suoralta linkitykseltä toisille sivustoille. Säästät sekä kaistaa että muita palvelinresursseja, kun estät turhan liikenteen:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sivustosi.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png|bmp|psd)$ [F,NC,L]

Jos haluat, voit myös tarjota haluamasi kuva kaistan/kuvan varastajille:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sivustosi\.com(/)?.* [NC]
RewriteRule \.(jpe?g|gif|bmp|png)$ images/kuvavaras.gif [NC,L]

Luonnollisesti voi myös lisätä useamman sivuston, jotka voivat käyttää kuviasi:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sivustosi\.com(/)?.* [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?toinensivustosi\.com(/)?.* [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?kolmassivustosi\.com(/)?.* [NC]
RewriteRule \.(jpe?g|gif|bmp|png)$ images/kuvavaras.gif [NC,L]

Kustomoidut virhesivut

Voit määritellä kustomoidut virhesivut sivustollesi helposti .htaccesin avulla. Lisäät vain esimerkin kaltaisen lauseen uudelle riville (voi toki muuttaa virhesivun numeroa mielesi mukaan) :

ErrorDocument 404 /kansio/virhe404.html

Tässä yleisimmät virhekoodit:

401 Unauthorized - pääsy kielletty (suojattu esim. salasanalla)
403 Forbidden - kielletty
404 Not Found - sivua ei löytynyt
500 Internal Error - virhe palvelimella

Kansioiden ja tiedostojen suojaaminen salasanalla

.htaccess tarjoaa yhdessä .htpasswd -tiedoston kanssa hyvän salasanasuojauksen halutuille tiedostoille tai kansioille.

Esimerkki

Halutaan kansio yksityinen suojatuksi salasanalla. oletetaan, että kansion osoite on http://www.sivusto.com/yksityinen/. Lisätään yksityinen -kansion .htaccessiin:

<files *>
AuthName “Ei pääsyä”
AuthType Basic
AuthUserFile /home/polku/salasanatiedostoon/.htpasswd
Require valid-user
</files>

Nyt luodaan .htpasswd tiedosto haluttuun paikkaan ja kirjoitetaan sen polku .htaccessin sisältöön. .htapasswd -tiedostoon ei tule liittää muuta kuin käyttäjätunnus ja salasana muodossa käyttäjätunnus:salasana. Täytyy kuitenkin muistaa, että salasana täytyy salata toimiakseen. Se onnistuu helposti esimerkiksi täällä.

Haluamme käyttäjätunnukseksi heppu ja salasanaksi hdklgs42. Syötämme ne salaajaan ja saamme tulokseksi heppu:RPnO.C0HrLEyg, jonka liitämme sis .hpasswd -tiedostoon.

Nyt jos käyttäjä yrittää pääsyä /yksityinen -kansioon, kysyy ponnahduslomake häneltä käyttäjätunnustä ja salasanaa. Jos käyttäjä ei tiedä niitä, vastaanottaa hän virhesivun.

Myös pelkästään yksittäisen tiedoston suojaaminen onnistuu muokkaamalla vain hieman edellistä .htaccessiin lisättyä koodia:

<files “tiedostonimi.html”>
AuthName “Ei pääsyä”
AuthType Basic
AuthUserFile /home/polku/salasanatiedostoon/.htpasswd
Require valid-user
</files>

(Huomaa esimerkeissämme, että blogisofta vääristää heittomerkit, joten muista muuttaa ne oikeiksi jos käytät esimerkkejä)

7 kommenttia »

  1. nico kommentoi että,

    06.03.2006 @ 22:56

    Miten muuten kun liikenne pitäisi ohjata yhdeltä saitilta toiselle? Onko noi esimerkit sitäkin varten?

  2. Hakukoneoptimointia kommentoi että,

    06.03.2006 @ 22:56

    Kyllä vain. Esim:

    redirect 301 / http://www.uusisivusto.com/
    redirect 302 / http://www.uusisivusto.com/

    Tai Mod_rewriten avulla vanhalla sivustolla olevat (samannimiset) tiedostot uudelle sivustolle:

    RewriteEngine on
    RewriteRule ^(.*)$ http://uusisivusto.com/$1 [R=301,L]

    tai voi sitä koittaa vaikka PHP:lla

    <?
    Header( “HTTP/1.1 301 Moved Permanently” );
    Header( “Location: http://www.uusisivusto.com” );
    ?>

  3. Hakemistot kuntoon kommentoi että,

    15.04.2006 @ 22:56

    […] On parempi pysyä vain yhdessä tavassa ja huolehtia siitä, että kaikki sivuston linkit linkittävät juuri samaan osoitteeseen. Suosittelemme käyttämään kauttamerkkiä aina, mikäli mahdollista (/hakemisto/). Vielä parempi jos voit liittää osoitteeseen automaattisesti kauttamerkin esimerkiksi Mod_Rewriten avulla tai muuten uudelleenohjata muut mahdolliset tuplasisältöä aiheuttavat osoitteet kauttaviivalla varustettuun. […]

  4. Hakukoneoptimointi - Sanasto kommentoi että,

    23.05.2006 @ 22:56

    […] Lue lisää: .htaccess ja .htpasswd […]

  5. Wertti kommentoi että,

    21.06.2006 @ 22:56

    RewriteEngine on
    RewriteRule ^index\.php$ http://www.uusikotisivu.com/ohjaustallesivulle.php [R]

    Mitenkäs tuon saisi uudelleenohjaamaan kaikki alasivutkin tuolta vanhasta domainista tietylle sivulle uuteen domainiin.

    Esim jos sivurakenne on www.vanhakotisivu.com/index.php?sivu=ekasivu

    Kiitos jo etukäteen…

  6. Hakukoneoptimointia kommentoi että,

    07.07.2006 @ 22:56

    Kyllä sen pitäisi toimia tuolla minkä näytitkin ja raapaista muuttujatkin mukaan.

    RewriteRule ^index\.php$ http://www.uusikotisivu.com/ohjaustallesivulle.php [R=301,L]

    Vai tarkoititko, että haluat dumpata muuttujat kokonaan?

  7. Artur kommentoi että,

    16.10.2006 @ 22:56

    Hei,

    Olen tehnyt .htaccess/htpasswd tiedostolla suojauksen erääseen webbikansiooni, mutta onko mahdollista samalla tekniikalla tehdä se suojaus niin, että se kysyy vain ja ainoastaan salasanaa eikä käyttäjätunnuksia?

    Terveisin,
    - Artur

RSS-syöte tämän julkaisun kommentteihin · TrackBack:in URI-osoite

Kirjoita uusi kommentti

*
Syötä vieressä näkyvän kuvan teksti tekstikenttään.
Anti-Spam kuva


Tuotteistaminen
Noste tuotteistaa
viidessä päivässä!
www.noste.com
Hakukoneoptimointi
Löytyykö yrityksenne
Googlen hakujen kärjestä? Tutustu!
www.hakukone.info