- Mikä on .htaccess?
- .htaccess-esimerkkejä
- Käyttäjien ohjaaminen tietylle virhesivulle
- Kustomoidun otsikon ja arvon lisääminen
- Käyttäjien estäminen IP:n perusteella
- Viittaajien estäminen (hotlink-suojaus)
- MIME-tyyppien lisääminen
- Selaimen välimuistitallennuksen hyödyntäminen
- Gzipin ottaminen käyttöön
- HTP-pyyntömenetelmien kieltäminen
- Performing 301 redirects
- CORS:n ottaminen käyttöön
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.