Tuki

author
5 minutes, 4 seconds Read
Päivitetty 4. lokakuuta 2018

Mikä on .htaccess?

Tiedostoa .htaccess (joka tunnetaan myös nimellä Hypertext Access file) käytetään Apache-käyttöjärjestelmällä toimivien verkkopalvelimien erityisten määritysten määrittämiseen. Tämä määritystiedosto vaikuttaa hakemistoon, johon se on tallennettu, sekä kaikkiin kyseisen hakemiston sisällä oleviin alihakemistoihin. Jos .htaccess-tiedosto sijaitsee esimerkiksi juurihakemistossa, se vaikuttaa koko sivustoon. Toisaalta, jos tiedosto sijaitsee tietyssä hakemistossa, se vaikuttaa vain kyseiseen hakemistoon ja sen sisällä oleviin alihakemistoihin.

Joidenkin CMS-alustojen, kuten WordPressin ja Drupalin, mukana tulee myös .htaccess-tiedostoja, joiden avulla voit määrittää tiettyjä konfiguraatioita, joita sovelletaan vain kyseiseen sivustoon. .htaccess-tiedoston avulla voidaan saavuttaa monenlaisia asioita, mm:

  • Edelleenohjausten suorittaminen
  • Virhesivujen muokkaaminen
  • Käyttäjien rajoittaminen IP:n perusteella
  • MIME-tyyppien lisääminen
  • HTP-otsakkeiden asettaminen
  • Tietyiden kansioiden suojaaminen salasanalla

Tiedostoa .htaccess voidaan käyttää paljon muuhunkin, yllä oleva luettelo kuuluu kuitenkin .htaccess:n suosituimpiin käyttökohteisiin. Alla olevassa osiossa hahmotellaan erilaisia .htaccess-esimerkkejä ja sitä, miten niitä voidaan käyttää omalla sivustollasi.

.htaccess-esimerkkejä

.htaccess-tiedostossa on valtava määrä määritysmahdollisuuksia. Alla olevassa luettelossa on muutamia yleisimmin käytettyjä esimerkkejä.

Käyttäjien ohjaaminen tietylle virhesivulle

Käyttäjien ohjaaminen tietylle virhesivulle

Käyttäjän voi ohjata tietyn tiedoston tai sivun palauttaman tilakoodin perusteella mukautetulle virhesivulle. Alla olevassa esimerkissä on muutamia muunnelmia, joita voit käyttää. Kukin riippuu palautetusta tilakoodista.

ErrorDocument 403 /forbidden.htmlErrorDocument 404 /notfound.htmlErrorDocument 500 /servererror.html

Kustomoidun otsikon ja arvon lisääminen

Kustomoituja HTTP-otsikoita voidaan lisätä myös .htaccess-tiedoston kautta. Tiedostossa on muutamia syntaksivaihtoehtoja, kuten set, joka korvaa kaikki aiemmat samannimiset otsikot, add, joka lisää otsikon, vaikka toinen samanniminen otsikko olisi olemassa. Tutustu Apachen sivuotsikkooppaaseen saadaksesi lisätietoja.

Header set X-Custom "Custom Value"

Yllä olevassa esimerkissä X-Custom-teksti vastaa HTTP-otsikkoa, joka palautetaan HTTP-vastauksessa, kun taas Custom Value-teksti vastaa kyseisen otsikon arvoa.

Käyttäjien estäminen IP:n perusteella

Turvallisuussyistä voit estää käyttäjiä IP:n perusteella .htaccess-tiedostossa. Alla olevassa esimerkissä on kaksi IP-osoitetta, jotka on estetty. Voimme myös päättää olla sisällyttämättä IP-osoitteen viimeistä numeroa, jolloin kaikki IP-osoitteet, jotka sisältävät kolme ensimmäistä numeroa, estetään.

order allow,denydeny from 255.x.x.xdeny from 123.x.x.xallow from all

Viittaajien estäminen (hotlink-suojaus)

Viittaajien estäminen, joka tunnetaan myös nimellä hotlink-suojaus, on menetelmä, jota käytetään estämään tiettyjä viittaajia viittaamasta verkkosivustosi omaisuuteen ja siten varastamasta kaistanleveyttä. Käytä alla olevaa pätkää määritelläksesi, mitkä verkkotunnukset eivät saa viitata sisältöösi, jolloin ne saavat 403 Forbidden-virheilmoituksen.

RewriteCond %{HTTP_REFERER} unwanteddomain\.com RewriteCond %{HTTP_REFERER} unwanteddomain2\.comRewriteRule .* - 

Samankaltainen toiminto voidaan toteuttaa myös KeyCDN:n kojelaudan kautta. Jos haluat lisätietoja siitä, miten Hotlink-suojaus voidaan ottaa käyttöön KeyCDN-vyöhykkeessäsi, tutustu Zone Referrers -oppaaseen.

MIME-tyyppien lisääminen

MIME-tyypit määrittelevät, mihin tietty tiedostopääte viittaa. Siksi on joskus tarpeen asettaa tämä .htaccess-tiedostossasi, jotta verkkopalvelimelle ilmoitetaan, minkä tyyppiseen tiedostoon viittaat. Täydellinen luettelo MIME-tyypeistä on osoitteessa MIME Types List.

AddType image/gif .gif .GIF

Selaimen välimuistitallennuksen hyödyntäminen

Tiedostoa .htaccess voidaan käyttää myös parantamaan verkkosivuston suorituskykyä hyödyntämällä selaimen välimuistitallennusta. Jokaiselle tiedostotyypille voidaan määritellä tietty expires-arvo. Voit määritellä mukautetun luettelon tiedostotyypeistä ja muuttaa jokaisen niiden expires-arvoa, mutta seuraava pätkä on hyvä lähtökohta.

## EXPIRES CACHING ##<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month"</IfModule>## EXPIRES CACHING ##

Gzipin ottaminen käyttöön

Gzipin ottaminen käyttöön alkuperäispalvelimella auttaa parantamaan aineistojesi suorituskykyä, koska ne pakataan ja ne voidaan siten toimittaa nopeammin. Voit määrittää mukautetun luettelon Gzipattavista MIME-tyypeistä, mutta alla oleva esimerkki on hyvä lähtökohta. Jos haluat lisätietoja Gzipin hyödyistä ja sen toiminnasta, lue Enable Gzip Compression -artikkeli.

<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml</IfModule>

HTP-pyyntömenetelmien kieltäminen

On olemassa useita HTTP-pyyntömenetelmiä, joita käytetään erilaisten lopputulosten saavuttamiseen. Jos on olemassa tiettyjä HTTP-metodeja, joita et halua käyttäjän käyttävän sivustollasi, voit kieltää ne .htaccess:llä.

RewriteCond %{REQUEST_METHOD} !^(HEAD|OPTIONS|POST|PUT)RewriteRule .* - 

Performing 301 redirects

Jos sinun täytyy tehdä 301-uudelleenohjaus sivulle, joka on siirtynyt, tämä voidaan helposti toteuttaa .htaccess:llä. Käytä vain alla olevaa pätkää, joka ottaa ensimmäisen URL-osoitteen (vanha linkki) ja ohjaa sen toiseen URL-osoitteeseen (uusi linkki).

Redirect 301 https://yourwebsite.com/old-page https://yourwebsite.com/new-page

CORS:n ottaminen käyttöön

CORS:n ottaminen käyttöön on ratkaisevan tärkeää, kun halutaan toimittaa staattisia aineistoja eri alkuperien välillä. Seuraava pätkä voidaan lisätä .htaccess-tiedostoon, jotta kaikki alkuperät voivat jakaa resursseja. Muussa tapauksessa, jos tämä ei ole käytössä ja alkuperäsi pyytää resursseja toisesta alkuperästä, saat CORS-virheen. Lue lisää CORS:stä artikkelistamme Kuinka käyttää CORS:ää.

<IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css|js|gif|png|jpe?g|svg|svgz|ico|webp)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch></IfModule>

Yllä olevat .htaccess-esimerkit ovat hyvä lähtökohta niille, jotka eivät ole vielä perehtyneet .htaccess:n käyttöön, mutta haluavat kuitenkin suorittaa tiettyjä verkkopalvelimen määrityksiä. .htaccess-tiedosto pystyy suorittamaan monenlaisia tehtäviä, ja se on varsin joustava verkkosivustosi tarpeisiin sopivaksi. Vaikka nämä .htaccess-esimerkit ovat hyvä lähtökohta, saatat haluta suorittaa joitakin edistyneempiä .htaccess-konfiguraatioita. Jos haluat lisätietoja tästä aiheesta, kannattaa tutustua AskApachen .htaccess-tiedoston opas-artikkeliin.

Similar Posts

Vastaa

Sähköpostiosoitettasi ei julkaista.