Ero sivun ”Apache HTTPD:n asetukset” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (siirsi sivun ”Apache www-palvelin” uudelle nimelle ”Apache httpd:n asetukset”)
pEi muokkausyhteenvetoa
 
(15 välissä olevaa versiota 11 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
[[Apache]] on Linuxin puolella ylivoimainen www-palvelin, joka mukautuu helposti haluamiisi tarpeisiin. Kyseinen ohjelmisto löytyy myös [[Windows]]-alustalle.
[[Apache HTTPD]] on ylivoimaisesti käytetyin www-palvelin, joka mukautuu helposti haluamiisi tarpeisiin. Apache HTTPD löytyy myös [[Windows]]-alustalle.


Apachen määritykset ovat tiedostossa /etc/httpd/conf/httpd.conf tai /etc/apache2/httpd.conf. Kyseinen tiedosto sisältää runsaasti kommentteja, joiden avulla on helppo päästä alkuun Apachen hallinnassa. Lisätietoja löytyy erittäin hyvin tehdystä dokumentoinnista ja ohjeistuksesta Apachen [http://httpd.apache.org/docs-2.0/ www-saitilta]. Alla on pyritty suomentamaan ja selkeyttämään dokumenttia. Kyseinen ohjeistus on tehty kommenttimuotoon, jolloin voit halutessasi siirtää sen sellaisenaan omien konfiguraatioidesi pohjaksi.
Apachen määritykset ovat [[asetustiedosto]]ssa <tt>/etc/httpd/conf/httpd.conf</tt> tai <tt>/etc/apache2/httpd.conf</tt>. Kyseinen tiedosto sisältää runsaasti kommentteja, joiden avulla on helppo päästä alkuun Apachen hallinnassa. Lisätietoja löytyy Apachen [https://httpd.apache.org/docs-2.0/ ohjeista]. Alla on pyritty suomentamaan ja selkeyttämään ohjeita. Ohjeistus on tehty kommenttimuotoon Apachen asetustiedostoon, jolloin voit halutessasi siirtää sen sellaisenaan oman asetustiedostosi pohjaksi.


[[Apache harjoituksia]] on harjoituksia osiossa.
<source lang="bash">


# Tarkemmat ohjeet: http://httpd.apache.org/docs-2.0
# Piilottaa käynnissä olevat moduulit näkymästä maailmalle
ServerTokens OS


# Määritykset jaettu kolmeen perustyyppiin
# Palvelimen juurihakemisto, mistä löytyvät asetus-, loki- ja
#  1. Määritykset, jotka koskettavat Apache palvelimen prosesseja
# virhetiedostot.
# kokonaisuudessaan (globaali ympäristö)
ServerRoot "/etc/httpd"
# 2. Määritykset, jotka koskettavat Apache palvelimen pääsivustoa
# (main/default server) eli vastaa niistä määrityksistä, joita ei ole
# erikseen määritetty virtuaalipalvelimille. Nämä määritykset antavat
# myös perusasetukset virtuaalipalvelimille.
#  3. Virtuaalipalvelinten määritykset


### 1: globaali ymp.
# Tiedosto, joka sisältää HTTPD:n käynnistyessään saaman prosessinumeron
PidFile run/httpd.pid


# Piilottaa käynnissä olevat modulit näkymästä maailmalle
# Aika sekunneissa kauanko palvelin odottaa vastausta pyyntöön
ServerTokens OS
# Pyyntö voi olla
# GET
# POST- / PUT-pyyntöjen välinen TCP-pakettien aika
# TCP-pakettien kättelyjen (ACK) välinen aika
Timeout 120


# Palvelimen juurihakemisto, mistä löytyvät konfiguraatio-, logi- ja
# Sallitaanko jatkuva yhteys (enemmän kuin yksi pyyntö / yhteys)
# virhetiedostot.
# Nopeuttaa staattisten sivujen käsittelyä, oletuksena pois päältä
ServerRoot "/etc/httpd"
KeepAlive Off


# Tiedosto, joka sisältää httpd:n käynnistyessään saaman prosessinumeron
# Jos edellinen käytössä, niin montako kyselyä samaan yhteyteen
PidFile run/httpd.pid
MaxKeepAliveRequests 100


# Aika sekunneissa kauanko palvelin odottaa vastausta pyyntöön
# Montako sekuntia odotetaan pyyntöä samasta yhteydestä ennen sen
# Pyyntö voi olla
# sulkemista. Ruuhkaisilla palvelimilla ei kannata odottaa liian kauaa
# GET
KeepAliveTimeout 15
# POST / PUT pyyntöjen välinen TCP-pakettien aika
# TCP-pakettien kättelyjen (ACK) välinen aika
Timeout 120


# Sallitaanko jatkuva yhteys (enemmän kuin yksi pyyntö / yhteys)
# prefork MPM on oletus, worker MPM pitää määrittää asennuksessa erikseen
# Nopeuttaa staattisten sivujen käsittelyä, oletuksena pois
# StartServers: montako palvelinprosessia käynnistetään
  KeepAlive Off
# MinSpareServers: minimimäärä varapalvelinprosesseja
# MaxSpareServers: maksimimäärä varapalvelinprosesseja
# ServerLimit: Maxclients muuttujan maksimimäärä (Älä muuta)
# MaxClients: Käynnistettävien serveriprosessien maksimimäärä
# MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
# maksimimäärä
<IfModule prefork.c>
StartServers      8
MinSpareServers    5
MaxSpareServers  20
ServerLimit      256
MaxClients      256
MaxRequestsPerChild 4000
</IfModule>


# Jos edellinen käytössä, niin montako kyselyä samaan yhteyteen
# worker MPM
  MaxKeepAliveRequests 100
<IfModule worker.c>
StartServers        2
MaxClients        150
MinSpareThreads    25
MaxSpareThreads    75
ThreadsPerChild    25
MaxRequestsPerChild 0
</IfModule>


# Montako sekuntia odotetaan pyyntöä samasta yhteydestä ennen sen
# Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
# sulkemista. Ruuhkaisilla palvelimilla ei kannata odottaa liian kauaa
# Portti 80 on http:n oletusportti
KeepAliveTimeout 15
#Listen 12.34.56.78:80
Listen 80


# prefork MPM on oletus, worker MPM pitää määrittää asennuksessa erikseen
# Dynamic Shared Object (DSO) Support (Linkkikirjastojen tuki)
# StartServers: montako palvelinprosessia käynnistetään
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/
# MinSpareServers: minimimäärä varapalvelinprosesseja
LoadModule access_module modules/mod_access.so
# MaxSpareServers: maksimimäärä varapalvelinprosesseja
LoadModule auth_module modules/mod_auth.so
# ServerLimit: Maxclients muuttujan maksimimäärä (Älä muuta)
LoadModule auth_anon_module modules/mod_auth_anon.so
# MaxClients: Käynnistettävien serveriprosessien maksimimäärä
LoadModule auth_dbm_module modules/mod_auth_dbm.so
# MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
LoadModule auth_digest_module modules/mod_auth_digest.so
# maksimimäärä
LoadModule ldap_module modules/mod_ldap.so
<IfModule prefork.c>
LoadModule auth_ldap_module modules/mod_auth_ldap.so
StartServers      8
LoadModule include_module modules/mod_include.so
MinSpareServers    5
LoadModule log_config_module modules/mod_log_config.so
MaxSpareServers  20
LoadModule logio_module modules/mod_logio.so
ServerLimit      256
LoadModule env_module modules/mod_env.so
MaxClients      256
LoadModule mime_magic_module modules/mod_mime_magic.so
MaxRequestsPerChild  4000
LoadModule cern_meta_module modules/mod_cern_meta.so
</IfModule>
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so


# worker MPM
# Lataa määritystiedostot hakemistosta "/etc/httpd/conf.d".
<IfModule worker.c>
Include conf.d/*.conf
StartServers        2
MaxClients        150
MinSpareThreads    25
MaxSpareThreads    75
ThreadsPerChild    25
MaxRequestsPerChild  0
</IfModule>


# Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
# ExtendedStatus määrittää luoko Apache täyden vai perustilainformaation
# Portti 80 on http:n oletusportti
# kun "server-status" käsittelijää kutsutaan. Oletuksena Off.
#Listen 12.34.56.78:80
#ExtendedStatus On
Listen 80


# Dynamic Shared Object (DSO) Support (Linkkikirjastojen tuki)
# httpd-käyttäjä ja -käyttäjäryhmä
# Lisätietoja: http://httpd.apache.org/docs/2.0/mod/
User apache
LoadModule access_module modules/mod_access.so <br>
Group apache
LoadModule auth_module modules/mod_auth.so <br>
LoadModule auth_anon_module modules/mod_auth_anon.so <br>
LoadModule auth_dbm_module modules/mod_auth_dbm.so <br>
LoadModule auth_digest_module modules/mod_auth_digest.so <br>
LoadModule ldap_module modules/mod_ldap.so <br>
LoadModule auth_ldap_module modules/mod_auth_ldap.so <br>
LoadModule include_module modules/mod_include.so <br>
LoadModule log_config_module modules/mod_log_config.so <br>
LoadModule logio_module modules/mod_logio.so <br>
LoadModule env_module modules/mod_env.so <br>
LoadModule mime_magic_module modules/mod_mime_magic.so <br>
LoadModule cern_meta_module modules/mod_cern_meta.so <br>
LoadModule expires_module modules/mod_expires.so <br>
LoadModule deflate_module modules/mod_deflate.so <br>
LoadModule headers_module modules/mod_headers.so <br>
LoadModule usertrack_module modules/mod_usertrack.so <br>
LoadModule setenvif_module modules/mod_setenvif.so <br>
LoadModule mime_module modules/mod_mime.so <br>
LoadModule dav_module modules/mod_dav.so <br>
LoadModule status_module modules/mod_status.so <br>
LoadModule autoindex_module modules/mod_autoindex.so <br>
LoadModule asis_module modules/mod_asis.so <br>
LoadModule info_module modules/mod_info.so <br>
LoadModule dav_fs_module modules/mod_dav_fs.so <br>
LoadModule vhost_alias_module modules/mod_vhost_alias.so <br>
LoadModule negotiation_module modules/mod_negotiation.so <br>
LoadModule dir_module modules/mod_dir.so <br>
LoadModule actions_module modules/mod_actions.so <br>
LoadModule speling_module modules/mod_speling.so <br>
LoadModule userdir_module modules/mod_userdir.so <br>
LoadModule alias_module modules/mod_alias.so <br>
LoadModule rewrite_module modules/mod_rewrite.so <br>
LoadModule proxy_module modules/mod_proxy.so <br>
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so <br>
LoadModule proxy_http_module modules/mod_proxy_http.so <br>
LoadModule proxy_connect_module modules/mod_proxy_connect.so <br>
LoadModule cache_module modules/mod_cache.so <br>
LoadModule suexec_module modules/mod_suexec.so <br>
LoadModule disk_cache_module modules/mod_disk_cache.so <br>
LoadModule file_cache_module modules/mod_file_cache.so <br>
LoadModule mem_cache_module modules/mod_mem_cache.so <br>
LoadModule cgi_module modules/mod_cgi.so <br>


# Lataa määritystiedostot hakemistosta "/etc/httpd/conf.d".
### 2: "Pääpalvelimen" määritykset
Include conf.d/*.conf
# Kaikkia näitä määrityksiä voi käyttää virtuaalipalvelimissa,
# jolloin ne korvaavat tässä esitetyt


# ExtendedStatus määrittää luoko Apache täyden vai perustilainformaation
# Mihin osoitteeseen virheet tulee postitttaa
# kun "server-status" käsittelijää kutsutaan. Oletuksena Off.
ServerAdmin root@localhost
#ExtendedStatus On


# httpd käyttäjä ja käyttäjäryhmä
# Servername määrittää nimen ja portin, jolla palvelin tunnistaa itsensä.
User apache
# Jollei palvelimen nimi ole rekisteröity, niin laita tähän ip-osoite
Group apache
# Tällöin uudelleenohjaukset toimivat varmemmin
#ServerName www.example.com:80


### 2: "Pääpalvelimen" määritykset
# UseCanonicalName määrittää kuinka Apache luo itseensä viittaavat URL:t.
# Kaikkia näitä määrityksiä voi käyttää virtuaalipalvelimissa,
# sekä SERVER_NAME ja SERVER_PORT muuttujat.
# jolloin ne korvaavat tässä esitetyt
# "Off", Apache käyttää asiakkaalta tulevaa Hostname ja Port arvoa
# "On", Apache käyttää ServerName määritettä (yllä)
# Esimerkki:
# Käyttäjät kirjautuvat sisäverkon www-palvelimeen lyhennetyllä nimellä
# kuten www. Mikäli URL sisältää myös hakemiston esim. http://www/splat
# ilman lopussa olevaa kauttaviivaa, niin Apache ohjaa osoitteeseen
# http://www.example.com/splat/. Tämä tuottaa autentikoinnin tapauksessa
# sen, että käyttäjän tarvitsee kirjautua kahdesti (kerran www ja kerran
# www.example.com). Mutta jos UseCanonicalName on "Off", niin Apache
# ohjaa oikeaan osoitteeseen http://www/splat/.
UseCanonicalName Off


# Mihin osoitteeseen virheet tulee postitttaa
# DocumentRoot: oletushakemisto sivustoille
ServerAdmin root@localhost
DocumentRoot "/var/www/html"


# Servername määrittää nimen ja portin, jolla palvelin tunnistaa itsensä.
# Jokaiseen hakemistoon johon Apachella on pääsy voidaan määrittää
# Jollei palvelimen nimi ole rekisteröity, niin laita tähän ip-osoite
# palvelut ja ominaisuudet jotka sallitaan / kielletään kyseisessä
# Tällöin uudelleenohjaukset toimivat varmemmin
# hakemistossa ja sen alihakemistoissa
#ServerName www.example.com:80
# Oletukseksi määritetään hyvin rajoitetut ominaisuudet
<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>


# UseCanonicalName määrittää kuinka Apache luo itseensä viittaavat URL:t.
# Tästä eteenpäin sinun tulee erityisesti sallia (enable) tietyt
# sekä SERVER_NAME ja SERVER_PORT muuttujat.
# ominaisuudet
# "Off", Apache käyttää asiakkaalta tulevaa Hostname ja Port arvoa
# Vaihda myös tämä, jos vaihdat DocumentRoot määritettä (yllä).
# "On", Apache käyttää ServerName määritettä (yllä)
<Directory "/var/www/html">
# Esimerkki:
# Käyttäjät kirjautuvat sisäverkon www-palvelimeen lyhennetyllä nimellä
# kuten www. Mikäli URL sisältää myös hakemiston esim. http://www/splat
# ilman lopussa olevaa kauttaviivaa, niin Apache ohjaa osoitteeseen
# http://www.example.com/splat/. Tämä tuottaa autentikoinnin tapauksessa
# sen, että käyttäjän tarvitsee kirjautua kahdesti (kerran www ja kerran
# www.example.com). Mutta jos UseCanonicalName on "Off", niin Apache
# ohjaa oikeaan osoitteeseen http://www/splat/.
UseCanonicalName Off


# DocumentRoot: oletushakemisto sivustoille
# Mahdollisia arvoja Options määritteelle ovat "None", "All",
DocumentRoot "/var/www/html"
# tai mikä tahansa yhdistelmä seuraavista
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Huomaa että "MultiViews" täytyy määrittää erikseen se ei tule
# "Options All" mukana
# Arvojen selitykset
# (https://httpd.apache.org/docs-2.0/mod/core.html#options):


# Jokaiseen hakemistoon (johon Apachella on pääsy) voidaan määrittää
# Indexes - Jos annettu pelkkä hakemisto ja sieltä puuttuu DirectoryIndex
# palvelut ja ominaisuudet jotka sallitaan / kielletään kyseisessä
# kohdassa määritetyn niminen tiedosto, niin mod_autoindex moduli luo
# hakemistossa ja sen alihakemistoissa
# asiakkaalle kyseisen hakemiston listauksen.
# Oletukseksi määritetään hyvin rajoitetut ominaisuudet
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>


# Tästä eteenpäin sinun tulee erityisesti sallia (enable) tietyt
# Includes - mod_includen mukanaan tuomat Server-side includes (shtml)
# ominaisuudet
# sallitaan
# Vaihda myös tämä, jos vaihdat DocumentRoot määritettä (yllä).
<Directory "/var/www/html">


# Mahdollisia arvoja Options määritteelle ovat "None", "All",
# FollowSymLinks- Palvelin seuraa symbolisia linkkejä
# tai mikä tahansa yhdistelmä seuraavista
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Huomaa että "MultiViews" täytyy määrittää erikseen se ei tule
# "Options All" mukana
# Arvojen selitykset
# (http://httpd.apache.org/docs-2.0/mod/core.html#options):


# Indexes - Jos annettu pelkkä hakemisto ja sieltä puuttuu DirectoryIndex
# SymLinksifOwnerMatch - Palvelin seuraa symbolisia linkkejä vain jos
# kohdassa määritetyn niminen tiedosto, niin mod_autoindex moduli luo
# kohdetiedoston tai -hakemiston omistaa sama käyttäjäid kuin linkin
# asiakkaalle kyseisen hakemiston listauksen.
# ExecCGI - CGI skriptien käyttö mod_cgi:n avulla sallittu


# Includes - mod_includen mukanaan tuomat Server-side includes (shtml)
# MultiViews - jos palvelin saa kyselyn /some/dir/foo,
# sallitaan
# ja kyseisessä hakemistossa (/some/dir) on MultiViews käytössä
# ja /some/dir/foo ei ole olemassa, niin palvelin etsii hakemistosta
# kaikki tiedostot nimeltä foo.* ja luo tilapäisen "type map"in ja
# valitsee niistä parhaan asiakkaan vaatimuksiin
 
Options Indexes FollowSymLinks


# FollowSymLinks- Palvelin seuraa symbolisia linkkejä
# AllowOverride kontrolloi .htaccess tiedostoihin laitettavat
# määritetteet. Se voi olla "All", "None" tai mikä tahansa
# yhdistelmä seuraavista:
# Options FileInfo AuthConfig Limit
# Lisätietoa autentikoinnista:
# https://httpd.apache.org/docs/2.0/howto/auth.html


# SymLinksifOwnerMatch - Palvelin seuraa symbolisia linkkejä vain jos
# None - .htaccess-tiedostot jätetään huomioitta
# kohdetiedoston tai -hakemiston omistaa sama käyttäjäid kuin linkin
# ExecCGI - CGI skriptien käyttö mod_cgi:n avulla sallittu


# MultiViews - jos palvelin saa kyselyn /some/dir/foo,  
# AuthConfig - Sallii lupamääritteiden käytön
# ja kyseisessä hakemistossa (/some/dir) on MultiViews käytössä
# Lupamääritteitä voivat olla:
# ja /some/dir/foo ei ole olemassa, niin palvelin etsii hakemistosta
# - AuthDBMGroupFile - Käyttäjäryhmien nimet sisältävä DBM-tiedosto.
# kaikki tiedostot nimeltä foo.* ja luo tilapäisen "type map"in ja
# Käyttää mod_auth_dbm-moduulia, joka tarjoaa perusautentikoinnin, missä
# valitsee niistä parhaan asiakkaan vaatimuksiin
# käyttäjänimet ja salasanat tallennetaan DBM-tyyppiseen tietokantaan
   
# toisin kuin mod_auth-moduuli, joka käyttää tekstitiedostoja.
Options Indexes FollowSymLinks
# Lisää DBM-tiedostoista ja niiden luonnista:
# http://www.apacheweek.com/features/dbmauth
# - AuthDBMUserFile - Käyttäjien nimet ja salasanat sisältävä DBM-
# tiedosto
# - AuthGroupFile - Käyttäjäryhmät sisältävä tekstitiedosto
# - AuthName - Salasanaa pyytävän ikkunan Title-osan teksti
# - AuthType - Hakemiston autentikointitapa, joka voi olla joko Basic
# tai Digest. Digest lähettää tiedon suojattuna (toisin kuin Basic),
# mutta toimii vain tietyillä selaimilla, lisätietoja Digest tavan
# käytöstä löydät osoitteesta:
# https://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html


# AllowOverride kontrolloi .htaccess tiedostoihin laitettavat
# AuthUserFile - Käyttäjien nimet ja salasanat sisältävän
# määritetteet. Se voi olla "All", "None" tai mikä tahansa
# tekstitiedoston nimi
# yhdistelmä seuraavista:
# Options FileInfo AuthConfig Limit
# Lisätietoa autentikoinnista:
# http://httpd.apache.org/docs/2.0/howto/auth.html


# None - .htaccess tiedostot jätetään huomioitta
# Require - Määrittää ketkä autentikoidut käyttäjät pääsevät resurssiin


# AuthConfig - Sallii lupamääritteiden käytön
# Esimerkki:
# Lupamääritteitä voivat olla:
# AuthType Basic
# - AuthDBMGroupFile - Käyttäjäryhmien nimet sisältävä DBM tiedosto.
# AuthName "Restricted Resource"
# Käyttää mod_auth_dbm modulia, joka tarjoaa perusautentikoinnin, missä
# AuthUserFile /web/users
# käyttäjänimet ja salasanat tallennetaan DBM tyyppiseen tietokantaan
# AuthGroupFile /web/groups
# toisin kuin mod_auth moduli, joka käyttää tekstitiedostoja.
# Require group admin
# Lisää DBM tiedostoista ja niiden luonnista:
AllowOverride None
# http://www.apacheweek.com/features/dbmauth
# - AuthDBMUserFile - Käyttäjien nimet ja salasanat sisältävä DBM
# tiedosto
# - AuthGroupFile - Käyttäjäryhmät sisältävä tekstitiedosto
# - AuthName - Salasanaa pyytävän ikkunan Title-osan teksti
# - AuthType - Hakemiston autentikointitapa, joka voi olla joko Basic
# tai Digest. Digest lähettää tiedon suojattuna (toisin kuin Basic),
# mutta toimii vain tietyillä selaimilla, lisätietoja Digest tavan
# käytöstä löydät osoitteesta:
# http://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html


# AuthUserFile - Käyttäjien nimet ja salasanat sisältävän
# Määritetään kenellä on oikeus palvelimelle
# tekstitiedoston nimi
# Order määrittää allow ja deny määritteiden järjestyksen
# Määritteet (ja niihin alla määritetyt tiedot) luetaan annetussa
# järjestyksessä. Näin ollen jälkimmäisenä annettu määrite päättää
# oletuskäytännön (Allow,Deny -> Oletuksena kaikilta kielletty).


# Require - Määrittää ketkä autentikoidut käyttäjät pääsevät resurssiin
# Esim. (päästää vain Apache.org-domainiin kuuluvat koneet,
# muut kielletään):
# Order Deny,Allow
# Deny from all
# Allow from apache.org


# Esimerkki:
# Esim. (Päästää vain apache.org-domainiin kuuluvat, oletuksena kielto)
# AuthType Basic
# Order Allow,Deny
# AuthName "Restricted Resource"
# Allow from apache.org
# AuthUserFile /web/users
# Deny from foo.apache.org
# AuthGroupFile /web/groups
# Require group admin
AllowOverride None


# Määritetään kenellä on oikeus palvelimelle
# Esim. (Päästää kaikki, koska oletuksena vapaa pääsy, huomaa järjestys)
# Order määrittää allow ja deny määritteiden järjestyksen
# Order Deny,Allow
# Määritteet (ja niihin alla määritetyt tiedot) luetaan annetussa
# Allow from apache.org
# järjestyksessä. Näin ollen jälkimmäisenä annettu määrite päättää
# Deny from foo.apache.org
# oletuskäytännön (Allow,Deny -> Oletuksena kaikilta kielletty).


# Esim. (päästää vain Apache.org domainiin kuuluvat koneet,
# Edellä olevat esimerkit tarkemmin:
# muut kielletään):
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#order
# Order Deny,Allow
# Deny from all
# Allow from apache.org


# Esim. (Päästää vain apache.org domainiin kuuluvat, oletuksena kielto)
# Allow määritteellä annetaan ne koneet, joilla on oikeus palvelimelle
# Order Allow,Deny
# Pääsyä voidaan kontrolloida IP-osoitteella, -alueella tai muilla
# Allow from apache.org
# ympäristömuuttujista saatavalla tiedolla. Ympäristö muuttujien käytöstä
# Deny from foo.apache.org
# löydät tietoja ja esimerkkejä mm. seuraavista osoitteista:
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
# https://httpd.apache.org/docs/2.0/mod/mod_setenvif.html
# https://httpd.apache.org/docs/2.0/env.html
# http://www.serverwatch.com/tutorials/article.php/1132731
# Esimerkkejä:
# Allow from apache.org
# Allow from .net example.edu
# Allow from 10.1.2.3
# Allow from 192.168.1.104 192.168.1.205
# Allow from 10.1
# Allow from 10 172.20 192.168.2
# Allow from 10.1.0.0/255.255.0.0
# Allow from 10.1.0.0/16
# Allow from 2001:db8::a00:20ff:fea7:ccea
# Allow from 2001:db8::a00:20ff:fea7:ccea/10


# Esim. (Päästää kaikki, koska oletuksena vapaa pääsy, huomaa järjestys)
Order allow,deny
# Order Deny,Allow
Allow from all
# Allow from apache.org
# Deny from foo.apache.org


# Edellä olevat esimerkit tarkemmin:
# Lopettaa oletushakemiston (/var/www/html) oikeuksien käsittelyn
# http://httpd.apache.org/docs/2.0/mod/mod_access.html#order
</Directory>
# UserDir on hakemiston nimi, josta käyttäjän kotihakemistossa
# sijaitsevat www-sivut haetaan ~käyttäjänimi haulla.
# Käyttäjän kotihakemiston oikeuksiksi (/home/userid) tulee muuttaa 711
# ja /home/userid/public_html oikeudet tulee olla 755,
# Muuten asiakas ei pääse hakemistoon ja saa "403 Forbidden"-ilmoituksen.


# Allow määritteellä annetaan ne koneet, joilla on oikeus palvelimelle
<IfModule mod_userdir.c>
# Pääsyä voidaan kontrolloida IP-osoitteella, -alueella tai muilla
# Ottaaksesi käyttäjien kotihakemistojen alla olevat www-sivut käyttöön
# ympäristömuuttujista saatavalla tiedolla. Ympäristö muuttujien käytöstä
# kommentoi seuraava rivi
# löydät tietoja ja esimerkkejä mm. seuraavista osoitteista:
  UserDir disable
# http://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
# ja poista risuaita seuraavan edestä
# http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html
      #UserDir public_html
# http://httpd.apache.org/docs/2.0/env.html
</IfModule>
# http://www.serverwatch.com/tutorials/article.php/1132731
# Esimerkkejä:
# Allow from apache.org
# Allow from .net example.edu
# Allow from 10.1.2.3
# Allow from 192.168.1.104 192.168.1.205
# Allow from 10.1
# Allow from 10 172.20 192.168.2
# Allow from 10.1.0.0/255.255.0.0
# Allow from 10.1.0.0/16
# Allow from 2001:db8::a00:20ff:fea7:ccea
# Allow from 2001:db8::a00:20ff:fea7:ccea/10


Order allow,deny
# Halutessasi laittaa määritteet kaikkien käyttäjien www-hakemistoihin
Allow from all
# käytä /home/*/public_html polkua
# Esimerkki:
# <Directory /home/*/public_html>
# AllowOverride AuthConfig
# </Directory>


# Lopettaa oletushakemiston (/var/www/html) oikeuksien käsittelyn
# DirectoryIndex: Minkä nimisiä tiedostoja haetaan, jos vain hakemisto
</Directory>
# annettu. Yleensä tähän lisätään mm. index.htm, index.php,
# UserDir on hakemiston nimi, josta käyttäjän kotihakemistossa
# index.php3, default.htm, default.html jne.
# sijaitsevat www-sivut haetaan ~käyttäjänimi haulla.
DirectoryIndex index.html index.html.var
# Käyttäjän kotihakemiston oikeuksiksi (/home/userid) tulee muuttaa 711
# ja /home/userid/public_html oikeudet tulee olla 755,
# Muuten asiakas ei pääse hakemistoon ja saa "403 Forbidden" ilmoituksen.


<IfModule mod_userdir.c>
# AccessFileName tiedoston nimi
# Ottaaksesi käyttäjien kotihakemistojen alla olevat www-sivut käyttöön
AccessFileName .htaccess
# kommentoi seuraava rivi
UserDir disable
# ja poista risuaita seuraavan edestä
    #UserDir public_html
</IfModule>


# Halutessasi laittaa määritteet kaikkien käyttäjien www-hakemistoihin
# Seuraavat rivit estävät .htaccess ja .htpasswd tiedostoja näkymästä
# käytä /home/*/public_html polkua
# asiakkaille (vain Apache näkee ne oikeutta tarkistaessaan)
# Esimerkki:
<Files ~ "^\.ht">
# <Directory /home/*/public_html>
  Order allow,deny
# AllowOverride AuthConfig
  Deny from all
# </Directory>
</Files>


# DirectoryIndex: Minkä nimisiä tiedostoja haetaan, jos vain hakemisto
# mime.type-tiedoston sijainti
# annettu. Yleensä tähän lisätään mm. index.htm, index.php,
TypesConfig /etc/mime.types
# index.php3, default.htm, default.html jne.
DirectoryIndex index.html index.html.var


# AccessFileName tiedoston nimi
# Oletus MIME-tyyppi. Perus-HTML sivustoille oikea valinta on text/plain
AccessFileName .htaccess
# Sovelluksille tai pääasiallisesti kuville
# "application/octet-stream" voi olla parempi vaihtoehto
DefaultType text/plain


# Seuraavat rivit estävät .htaccess ja .htpasswd tiedostoja näkymästä
# MIME-tyypin tunnistukseen käytettävän MIMEMagicFile-tiedoston sijainti
# asiakkaille (vain Apache näkee ne oikeutta tarkistaessaan)
<IfModule mod_mime_magic.c>
<Files ~ "^\.ht">
#  MIMEMagicFile /usr/share/magic.mime
    Order allow,deny
  MIMEMagicFile conf/magic
    Deny from all
</IfModule>
</Files>


# mime.type tiedoston sijainti
# Tallennetaanko lokeihin asiakkaiden nimet vai pelkät IP-osoitteet
TypesConfig /etc/mime.types
# esim. www.apache.org (on) tai 204.62.129.132 (off).
HostnameLookups Off


# Oletus MIME-tyyppi. Perus-HTML sivustoille oikea valinta on text/plain
# EnableMMAP lukee tiedoston muistiinsa voidakseen prosessoida ne ennen
# Sovelluksille tai pääasiallisesti kuville
# lähetystä asiakkaalle. Tämä on olennaista palvelimen päässä
# "application/octet-stream" voi olla parempi vaihtoehto
# käsiteltäville tiedostoille kuten .shtml. Oletuksena päällä.
DefaultType text/plain
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/core.html#enablemmap
#EnableMMAP off


# MIME-tyypin tunnistukseen käytettävän MIMEMagicFile tiedoston sijainti
# EnableSendfile määritteen ollessa päällä Apache näyttää staattisen
<IfModule mod_mime_magic.c>
# tiedoston asiakkaalle käsittelemättä sitä ensin. Päällä oletuksena.
#   MIMEMagicFile /usr/share/magic.mime
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
    MIMEMagicFile conf/magic
#EnableSendfile off
</IfModule>


# Tallennetaanko logeihin asiakkaiden nimet vai pelkät IP-osoitteet
# ErrorLog: Virhelogitiedoston sijainti
# esim. www.apache.org (on) tai 204.62.129.132 (off).
ErrorLog logs/error_log
HostnameLookups Off


# EnableMMAP lukee tiedoston muistiinsa voidakseen prosessoida ne ennen
# LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
# lähetystä asiakkaalle. Tämä on olennaista palvelimen päässä
# Mahdollisia arvoja: debug, info, notice, warn, error, crit,
# käsiteltäville tiedostoille kuten .shtml. Oletuksena päällä.
# alert, emerg.
# Lisätietoja: http://httpd.apache.org/docs/2.0/mod/core.html#enablemmap
# Tarkemmin: https://httpd.apache.org/docs/2.0/mod/core.html#loglevel
#EnableMMAP off
LogLevel warn
# Palvelimelle kohdistuneet pyynnöt taltioidaan CustomLog määritteen
# mukaisesti.
# Login tiedot voidaan määrittää ympäristömuuttujien avulla.
# Login muotoiluun vaikuttavia rivejä
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent


# EnableSendfile määritteen ollessa päällä Apache näyttää staattisen
# mod_logio moduulin ollessa ladattuna voi käyttää combinedio muotoilua,
# tiedoston asiakkaalle käsittelemättä sitä ensin. Päällä oletuksena.
# joka sisältää todellisten lähetettyjen ja saatujen tavujen lukumäärän.
# Lisätietoa http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
#EnableSendfile off


# ErrorLog: Virhelogitiedoston sijainti
# Tavallisen käyttölogin (access logfile) sijainti ja tyyppi.
ErrorLog logs/error_log
# Oletuksena käyttöön otetaan combined tyyppi, jossa logitiedot yhdistetty
#CustomLog logs/access_log common
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
CustomLog logs/access_log combined


# LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
# Voit lisätä logiin tiedon, joka sisältää palvelimen version, virtuaali-isännän
# Mahdollisia arvoja: debug, info, notice, warn, error, crit,  
# nimen palvelimen generoimiin sivuihin (virhesivut, ftp-listaukset jne).
# alert, emerg.
# Vaihtoehto "EMail" sisältää myös sähköpostin lähetyksen ServerAdminille.
# Tarkemmin: http://httpd.apache.org/docs/2.0/mod/core.html#loglevel
# Valitse joku seuraavista kolmesta: On | Off | EMail
LogLevel warn
ServerSignature On
# Palvelimelle kohdistuneet pyynnöt taltioidaan CustomLog määritteen
  # mukaisesti.
# Login tiedot voidaan määrittää ympäristömuuttujien avulla.
# Login muotoiluun vaikuttavia rivejä
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent


# mod_logio modulin ollessa ladattuna voi käyttää combinedio muotoilua,  
# Lisää tässä kohdin niin monta aliasnimeä kuin haluat muodossa
# joka sisältää todellisten lähetettyjen ja saatujen tavujen lukumäärän.
# Alias fakename realname
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
# Esimerkki:
# Alias /image /ftp/pub/image
# Jolloin pyyntö http://myserver/image/foo.gif palauttaa tiedoston
# /ftp/pub/image/foo.gif, jonka siis ei tarvitse olla /var/www/html/ alla.
# /icons/ alias FancyIndexeding toimintoa varten on oletuksena käytössä.
# FancyIndexing tarkoittaa tapaa tehdä hakemistolistaus niin, että se muodostuu
# eri sarakkeista ikonille, tiedostonimelle (Name), tiedoston muutosajalle
# (Last modified), tiedostokoolle (Size) ja kuvaukselle (Description).  
# Mikäli FancyIndexing on poissa päältä, hakemistolistaus on tavallinen
# järjestämätön lista.
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
  Options Indexes MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>


# Tavallisen käyttölogin (access logfile) sijainti ja tyyppi.
# WebDAV module configuration section.
# Oletuksena käyttöön otetaan combined tyyppi, jossa logitiedot yhdistetty
# WebDAV on www-sivujen etähallintaan tarkoitettu standardi.  
#CustomLog logs/access_log common
# Esimerkiksi WebDev, joka on php:llä toteutettu sivustonhallintasovellus,
#CustomLog logs/referer_log referer
# tukee WebDAV-protokollaa.
#CustomLog logs/agent_log agent
<IfModule mod_dav_fs.c>
CustomLog logs/access_log combined
  # WebDAV-lukitustietokannan sijainti
  DAVLockDB /var/lib/dav/lockdb
</IfModule>


# Voit lisätä logiin tiedon, joka sisältää palvelimen version, virtuaali-isännän
# ScriptAliakset ovat kuin aliakset mutta CGI-skriptejä varten
# nimen palvelimen generoimiin sivuihin (virhesivut, ftp-listaukset jne).
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# Vaihtoehto "EMail" sisältää myös sähköpostin lähetyksen ServerAdminille.
# Valitse joku seuraavista kolmesta:  On | Off | EMail
ServerSignature On


# Lisää tässä kohdin niin monta aliasnimeä kuin haluat muodossa
# Alias fakename realname
# Esimerkki:
# Alias /image /ftp/pub/image
# Jolloin pyyntö http://myserver/image/foo.gif palauttaa tiedoston
# /ftp/pub/image/foo.gif, jonka siis ei tarvitse olla /var/www/html/ alla.
# /icons/ alias FancyIndexeding toimintoa varten on oletuksena käytössä.
# FancyIndexing tarkoittaa tapaa tehdä hakemistolistaus niin, että se muodostuu
# eri sarakkeista ikonille, tiedostonimelle (Name), tiedoston muutosajalle
# (Last modified), tiedostokoolle (Size) ja kuvaukselle (Description).
# Mikäli FancyIndexing on poissa päältä, hakemistolistaus on tavallinen
# järjestämätön lista.
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


# WebDAV module configuration section.
# cgi-scriptien hakemisto ja määritteet
# WebDAV on www-sivujen etähallintaan tarkoitettu standardi.
<Directory "/var/www/cgi-bin">
# Esimerkiksi WebDev, joka on php:llä toteutettu sivustonhallintasovellus,
  AllowOverride None
# tukee WebDAV protokollaa.
  Options None
<IfModule mod_dav_fs.c>
  Order allow,deny
    # WebDAV lukitus tietokannan sijainti
  Allow from all
    DAVLockDB /var/lib/dav/lockdb
</Directory>
</IfModule>


# ScriptAliakset ovat kuin aliakset mutta CGI-skriptejä varten
# Redirect määritteen avulla voit ohjata asiakkaan toisaalle
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# Esimerkki:
# Redirect /service http://foo2.bar.com/service
# Ohjaa asiakkaan pyynnön http://pyynnönsaanutpalvelin/service/foo.txt
# osoitteeseen http://foo2.bar.com/service/foo.txt


# Palvelimen generoimien listausten määritteet
IndexOptions FancyIndexing VersionSort NameWidth=*
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# Oletuskuvake niille tiedoistoille joiden kuvaketta ei määritetty yllä
DefaultIcon /icons/unknown.gif
#AddDescription salli pienen selityksen liittämisen tiedostopäätteiden mukaan
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz


# cgi-scriptien hakemisto ja määritteet
# ReadmeName liitetään listauksen loppuun ja HeaderName listauksen alkuun
<Directory "/var/www/cgi-bin">
ReadmeName README.html
    AllowOverride None
HeaderName HEADER.html
    Options None
    Order allow,deny
    Allow from all
</Directory>


# Redirect määritteen avulla voit ohjata asiakkaan toisaalle
# IndexIgnore sisältää tiedostonimet, joita ei listata
# Esimerkki:
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
# Redirect /service http://foo2.bar.com/service
# Ohjaa asiakkaan pyynnön http://pyynnönsaanutpalvelin/service/foo.txt
# osoitteeseen http://foo2.bar.com/service/foo.txt


# Palvelimen generoimien listausten määritteet
# DefaultLanguage ja AddLanguage mahdollistaa dokumentin kielen määrittämisen
IndexOptions FancyIndexing VersionSort NameWidth=*
# jonka jälkeen sisältötarkastelun (content negotiation) avulla voit näyttää
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
# asiakkaalle dokumentin hänen selaimeensa määrittämällä kielellä.
AddIconByType (TXT,/icons/text.gif) text/*
# Ohjeistusta monikielisten sivustojen hallintaan löytyy
AddIconByType (IMG,/icons/image2.gif) image/*
# osoitteesta http://www.cs.tut.fi/~jkorpela/multi/index-en.htm
AddIconByType (SND,/icons/sound2.gif) audio/*
# Oletuskielen määrittäminen
AddIconByType (VID,/icons/movie.gif) video/*
# DefaultLanguage nl
AddIcon /icons/binary.gif .bin .exe
AddLanguage ca .ca
AddIcon /icons/binhex.gif .hqx
AddLanguage cs .cz .cs
AddIcon /icons/tar.gif .tar
AddLanguage da .dk
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddLanguage de .de
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddLanguage el .el
AddIcon /icons/a.gif .ps .ai .eps
AddLanguage en .en
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddLanguage eo .eo
AddIcon /icons/text.gif .txt
AddLanguage es .es
AddIcon /icons/c.gif .c
AddLanguage et .et
AddIcon /icons/p.gif .pl .py
AddLanguage fr .fr
AddIcon /icons/f.gif .for
AddLanguage he .he
AddIcon /icons/dvi.gif .dvi
AddLanguage hr .hr
AddIcon /icons/uuencoded.gif .uu
AddLanguage it .it
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddLanguage ja .ja
AddIcon /icons/tex.gif .tex
AddLanguage ko .ko
AddIcon /icons/bomb.gif core
AddLanguage ltz .ltz
AddIcon /icons/back.gif ..
AddLanguage nl .nl
AddIcon /icons/hand.right.gif README
AddLanguage nn .nn
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddLanguage no .no
AddIcon /icons/blank.gif ^^BLANKICON^^
AddLanguage pl .po
# Oletuskuvake niille tiedoistoille joiden kuvaketta ei määritetty yllä
AddLanguage pt .pt
DefaultIcon /icons/unknown.gif
AddLanguage pt-BR .pt-br
#AddDescription salli pienen selityksen liittämisen tiedostopäätteiden mukaan
AddLanguage ru .ru
#AddDescription "GZIP compressed document" .gz
AddLanguage sv .sv
#AddDescription "tar archive" .tar
AddLanguage zh-CN .zh-cn
#AddDescription "GZIP compressed tar archive" .tgz
AddLanguage zh-TW .zh-tw
# Lisää tämä itse
AddLanguage fi .fi


# ReadmeName liitetään listauksen loppuun ja HeaderName listauksen alkuun
# Muuta kielien prioriteetin määrittävä LanguagePriority haluamaksesi
ReadmeName README.html
# Lisää alkuun halutessasi fi
HeaderName HEADER.html
LanguagePriority fi en
# ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN
# zh-TW


# IndexIgnore sisältää tiedostonikmet, joita ei listata
# Jos halutunkielistä sivua ei löydy tai löytyy useita, niin
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
# Prefer hakee priorityjärjestyksestä ensimmäiseksi parhaan
# ja Fallback näyttää ensimmäisen languagepriority listasta
ForceLanguagePriority Prefer Fallback


# DefaultLanguage ja AddLanguage mahdollistaa dokumentin kielen määrittämisen
# Oletusmerkistö
# jonka jälkeen sisältötarkastelun (content negotiation) avulla voit näyttää
AddDefaultCharset UTF-8
# asiakkaalle dokumentin hänen selaimeensa määrittämällä kielellä.
# Ohjeistusta monikielisten sivustojen hallintaan löytyy
# osoitteesta http://www.cs.tut.fi/~jkorpela/multi/index-en.htm
# Oletuskielen määrittäminen
# DefaultLanguage nl
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
# Lisää tämä itse
AddLanguage fi .fi


# Muuta kielien prioriteetin määrittävä LanguagePriority haluamaksesi
# AddType mahdollistaa MIME määritysten korvaamisen tietyille tiedostotyypeille
# Lisää alkuun halutessasi fi
#AddType application/x-tar .tgz
LanguagePriority fi en
# ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN
# zh-TW


# Jos halutunkielistä sivua ei löydy tai löytyy useita, niin
# AddEncoding mahdollistaa joidenkin selainten purkaa pakattu tiedosto lennossa
# Prefer hakee priorityjärjestyksestä ensimmäiseksi parhaan
#AddEncoding x-compress .Z
# ja Fallback näyttää ensimmäisen languagepriority listasta
#AddEncoding x-gzip .gz .tgz
ForceLanguagePriority Prefer Fallback


# Oletusmerkistö
# Jos AddEncoding on kommentoituna kannattaa mediatyypit ilmaista
AddDefaultCharset UTF-8
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz


# AddType mahdollistaa MIME määritysten korvaamisen tietyille tiedostotyypeille
# AddHandler mahdollistaa tiettyjen tiedostopäätteiden liittämisen
#AddType application/x-tar .tgz
# käsittelijöihin eli tiedostotyyppiin liittymättömiin tapahtumiin
# Käyttä CGI-skriptejä muualla kuin ScriptAliased merkityissä
# hakemistoissa (Sinun tulee myös lisästä "ExecCGI" "Options" määritteeseen)
#AddHandler cgi-script .cgi


# AddEncoding mahdollistaa joidenkin selainten purkaa pakattu tiedosto lennossa
# Tiedostoille, joilla on omat HTTP otsikot (headers).
#AddEncoding x-compress .Z
#AddHandler send-as-is asis
#AddEncoding x-gzip .gz .tgz


# Jos AddEncoding on kommentoituna kannattaa mediatyypit ilmaista
# Tyyppikartoille (.var):
AddType application/x-compress .Z
# (Oletuksena päälle, jotta Apachen oletussivu voidaan näyttää usealla kielellä)
AddType application/x-gzip .gz .tgz
AddHandler type-map var


# AddHandler mahdollistaa tiettyjen tiedostopäätteiden liittämisen
# Filttereiden avulla voit käsitellä tiedoston ennen asiakkaalle lähettämistä
# käsittelijöihin eli tiedostotyyppiin liittymättömiin tapahtumiin
# Filters allow you to process content before it is sent to the client.
# Käyttä CGI-skriptejä muualla kuin ScriptAliased merkityissä
# .shtml tiedostot vaativat myös "Includes" "Options" määritteeseen).
# hakemistoissa (Sinun tulee myös lisästä "ExecCGI" "Options" määritteeseen)
AddType text/html .shtml
#AddHandler cgi-script .cgi
AddOutputFilter INCLUDES .shtml


# Tiedostoille, joilla on omat HTTP otsikot (headers).
# Action mahdollistaa halutun CGI-skriptin suorittamisen tietyn tiedostotyypin
#AddHandler send-as-is asis
# yhteydessä
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location


# Tyyppikartoille (.var):
# Mukautetut virheilmoitukset voivat tulla kolmessa muodossa:
# (Oletuksena päälle, jotta Apachen oletussivu voidaan näyttää usealla kielellä)
# 1) pelkkä teksti 2) sisäinen ohjaus 3) ulkoinen ohjaus
AddHandler type-map var
# Esimerkit:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html


# Filttereiden avulla voit käsitellä tiedoston ennen asiakkaalle lähettämistä
# Edellisiä yhdistämällä voimme antaa virheilmoitukset asiakkaan kielellä.
# Filters allow you to process content before it is sent to the client.
# Alias ohjaa kaikki /error/HTTP_<error>.html.var vastaukset virheenmukaisiin
  # .shtml tiedostot vaativat myös "Includes" "Options" määritteeseen).
# monikielisiin kokoelmiin. Includes korvaa halutun tekstin.
AddType text/html .shtml
# Voit muuttaa viestejä muuttamatta oletus HTTP_<error>.html.var tiedostoa
AddOutputFilter INCLUDES .shtml
# lisäämällä rivin
# Alias /error/include/ "/oma/include/polku/"
# Jolloin voit luoda omia tiedostojasi kopioimalla /var/www/error/include/
# "/oma/include/polku/" hakemistoon.
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
  <Directory "/var/www/error">
      AllowOverride None
      Options IncludesNoExec
      AddOutputFilter Includes html
      AddHandler type-map var
      Order allow,deny
      Allow from all
      LanguagePriority en es de fr
      ForceLanguagePriority Prefer Fallback
  </Directory>


# Action mahdollistaa halutun CGI-skriptin suorittamisen tietyn tiedostotyypin
#   ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
# yhteydessä
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
# Format: Action media/type /cgi-script/location
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
# Format: Action handler-name /cgi-script/location
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#   ErrorDocument 410 /error/HTTP_GONE.html.var
#   ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#   ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var


# Mukautetut virheilmoitukset voivat tulla kolmessa muodossa:
</IfModule>
# 1) pelkkä teksti 2) sisäinen ohjaus 3) ulkoinen ohjaus
</IfModule>
# Esimerkit:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html


# Edellisiä yhdistämällä voimme antaa virheilmoitukset asiakkaan kielellä.
# Seuraavat määritteet korjaavat ongelmia tietyissä selaimissa
# Alias ohjaa kaikki /error/HTTP_<error>.html.var vastaukset virheenmukaisiin
BrowserMatch "Mozilla/2" nokeepalive
# monikielisiin kokoelmiin. Includes korvaa halutun tekstin.
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
# Voit muuttaa viestejä muuttamatta oletus  HTTP_<error>.html.var tiedostoa
BrowserMatch "RealPlayer 4\.0" force-response-1.0
# lisäämällä rivin
BrowserMatch "Java/1\.0" force-response-1.0
# Alias /error/include/ "/oma/include/polku/"
BrowserMatch "JDK/1\.0" force-response-1.0
# Jolloin voit luoda omia tiedostojasi kopioimalla /var/www/error/include/
# "/oma/include/polku/" hakemistoon.
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>


#   ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
# Korjataan non-GET pyyntöjä
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
BrowserMatch "^WebDrive" redirect-carefully
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
BrowserMatch "^gnome-vfs" redirect-carefully
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var


</IfModule>
# Mahdollistetaan mod_status-moduulin luoda palvelintilaraportteja
</IfModule>
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>


# Seuraavat määritteet korjaavat ongelmia tietyissä selaimissa
# Mahdollistaa etäpalvelimen määritysrapotteja
BrowserMatch "Mozilla/2" nokeepalive
#<Location /server-info>
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#    SetHandler server-info
BrowserMatch "RealPlayer 4\.0" force-response-1.0
#    Order deny,allow
BrowserMatch "Java/1\.0" force-response-1.0
#    Deny from all
BrowserMatch "JDK/1\.0" force-response-1.0
#    Allow from .example.com
#</Location>


# Korjataan non-GET pyyntöjä
# Proxypalvelimen määritteet. Poista risuaidat mahdollistaaksesi Proxyn.
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
#<IfModule mod_proxy.c>
BrowserMatch "^WebDrive" redirect-carefully
#ProxyRequests On
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
#
BrowserMatch "^gnome-vfs" redirect-carefully
#<Proxy *>
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Proxy>


# Mahdollistetaan mod_status modulin luoda palvelintilaraportteja
# Proxyn HTTP/1.1 "Via:" headers -käsittely.
#<Location /server-status>
# "Full" lisää palvelinversion, "Block" poistaa kaikki Via: headers:it)
#    SetHandler server-status
# Valitse Off | On | Full | Block
#   Order deny,allow
#ProxyVia On
#    Deny from all
#   Allow from .example.com
#</Location>


# Mahdollistaa etäpalvelimen määritysrapotteja
# Proxyn cachen mahdollistaminen
#<Location /server-info>
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/mod_cache.html
#   SetHandler server-info
#<IfModule mod_disk_cache.c>
#   Order deny,allow
#   CacheEnable disk /
#   Deny from all
#   CacheRoot "/var/cache/mod_proxy"
#   Allow from .example.com
#</IfModule>
#</Location>
#</IfModule>
# Proxy määritteiden loppu


# Proxypalvelimen määritteet. Poista risuaidat mahdollistaaksesi Proxyn.
# 3: Virtuaali-isännät
#<IfModule mod_proxy.c>
# Mikäli palvelimellasi on useita domainnimiä tarvitset näitä.
#ProxyRequests On
# Poista risuaita ottaaksesi virtuaali-isännät käyttöön
#
# NameVirtualHost *:80
#<Proxy *>
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Proxy>
# Proxyn HTTP/1.1 "Via:" headers käsittely.
# "Full" lisää palvelinversion, "Block" poistaa kaikki Via: headers:it)
# Valitse Off | On | Full | Block
#ProxyVia On


# Proxyn cachen mahdollistaminen
# HUOM: NameVirtualHost täytyy sisältää portin, jos mod_ssl käytössä
# Lisätietoa http://httpd.apache.org/docs-2.0/mod/mod_cache.html
# VirtualHost sisältöpohja:
#<IfModule mod_disk_cache.c>
# Lähes mikä tahansa määritettä voidaan käyttää Virtuaali-isännän sisällössä
#   CacheEnable disk /
# Sisältöpohja on tarkoitettu niille pyynnöille joiden palvelinnimeä ei
#   CacheRoot "/var/cache/mod_proxy"
# tunnisteta.
#</IfModule>
#<VirtualHost *:80>
#</IfModule>
#    ServerAdmin webmaster@dummy-host.example.com
# Proxy määritteiden loppu
#    DocumentRoot /www/docs/dummy-host.example.com
#   ServerName dummy-host.example.com
#   ErrorLog logs/dummy-host.example.com-error_log
#   CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


# 3: Virtuaali-isännät
</source>
# Mikäli palvelimellasi on useita domainnimiä tarvitset näitä.
# Poista risuaita ottaaksesi virtuaali-isännät käyttöön
# NameVirtualHost *:80


# HUOM: NameVirtualHost täytyy sisältää portin, jos mod_ssl käytössä
== Katso myös ==
# VirtualHost sisältöpohja:
*[[Apache-harjoituksia]]
# Lähes mikä tahansa määritettä voidaan käyttää Virtuaali-isännän sisällössä
# Sisältöpohja on tarkoitettu niille pyynnöille joiden palvelinnimeä ei
# tunnisteta.
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


[[Luokka:Apache]]
[[Luokka:Apache]]
[[Luokka:Opetusmateriaalit]]
[[Luokka:Opetusmateriaalit]]

Nykyinen versio 9. joulukuuta 2020 kello 10.29

Apache HTTPD on ylivoimaisesti käytetyin www-palvelin, joka mukautuu helposti haluamiisi tarpeisiin. Apache HTTPD löytyy myös Windows-alustalle.

Apachen määritykset ovat asetustiedostossa /etc/httpd/conf/httpd.conf tai /etc/apache2/httpd.conf. Kyseinen tiedosto sisältää runsaasti kommentteja, joiden avulla on helppo päästä alkuun Apachen hallinnassa. Lisätietoja löytyy Apachen ohjeista. Alla on pyritty suomentamaan ja selkeyttämään ohjeita. Ohjeistus on tehty kommenttimuotoon Apachen asetustiedostoon, jolloin voit halutessasi siirtää sen sellaisenaan oman asetustiedostosi pohjaksi.

# Piilottaa käynnissä olevat moduulit näkymästä maailmalle
ServerTokens OS

# Palvelimen juurihakemisto, mistä löytyvät asetus-, loki- ja
# virhetiedostot.
ServerRoot "/etc/httpd"

# Tiedosto, joka sisältää HTTPD:n käynnistyessään saaman prosessinumeron
PidFile run/httpd.pid

# Aika sekunneissa kauanko palvelin odottaa vastausta pyyntöön
# Pyyntö voi olla
# GET
# POST- / PUT-pyyntöjen välinen TCP-pakettien aika
# TCP-pakettien kättelyjen (ACK) välinen aika
Timeout 120

# Sallitaanko jatkuva yhteys (enemmän kuin yksi pyyntö / yhteys)
# Nopeuttaa staattisten sivujen käsittelyä, oletuksena pois päältä
KeepAlive Off

# Jos edellinen käytössä, niin montako kyselyä samaan yhteyteen
MaxKeepAliveRequests 100

# Montako sekuntia odotetaan pyyntöä samasta yhteydestä ennen sen
# sulkemista. Ruuhkaisilla palvelimilla ei kannata odottaa liian kauaa
KeepAliveTimeout 15

# prefork MPM on oletus, worker MPM pitää määrittää asennuksessa erikseen
# StartServers: montako palvelinprosessia käynnistetään
# MinSpareServers: minimimäärä varapalvelinprosesseja
# MaxSpareServers: maksimimäärä varapalvelinprosesseja
# ServerLimit: Maxclients muuttujan maksimimäärä (Älä muuta)
# MaxClients: Käynnistettävien serveriprosessien maksimimäärä
# MaxRequestsPerChild: palvelinprosessin tarjoamien pyyntöjen
# maksimimäärä
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

# worker MPM
<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

# Jos haluat Apachen kuuntelevan vain tiettyä Ip-osoitetta ja/tai porttia
# Portti 80 on http:n oletusportti
#Listen 12.34.56.78:80
Listen 80

# Dynamic Shared Object (DSO) Support (Linkkikirjastojen tuki)
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule auth_anon_module modules/mod_auth_anon.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule auth_ldap_module modules/mod_auth_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so

# Lataa määritystiedostot hakemistosta "/etc/httpd/conf.d".
Include conf.d/*.conf

# ExtendedStatus määrittää luoko Apache täyden vai perustilainformaation
# kun "server-status" käsittelijää kutsutaan. Oletuksena Off.
#ExtendedStatus On

# httpd-käyttäjä ja -käyttäjäryhmä
User apache
Group apache

### 2: "Pääpalvelimen" määritykset
# Kaikkia näitä määrityksiä voi käyttää virtuaalipalvelimissa,
# jolloin ne korvaavat tässä esitetyt

# Mihin osoitteeseen virheet tulee postitttaa
ServerAdmin root@localhost

# Servername määrittää nimen ja portin, jolla palvelin tunnistaa itsensä.
# Jollei palvelimen nimi ole rekisteröity, niin laita tähän ip-osoite
# Tällöin uudelleenohjaukset toimivat varmemmin
#ServerName www.example.com:80

# UseCanonicalName määrittää kuinka Apache luo itseensä viittaavat URL:t. 
# sekä SERVER_NAME ja SERVER_PORT muuttujat.
# "Off", Apache käyttää asiakkaalta tulevaa Hostname ja Port arvoa
# "On", Apache käyttää ServerName määritettä (yllä)
# Esimerkki:
# Käyttäjät kirjautuvat sisäverkon www-palvelimeen lyhennetyllä nimellä 
# kuten www. Mikäli URL sisältää myös hakemiston esim. http://www/splat
# ilman lopussa olevaa kauttaviivaa, niin Apache ohjaa osoitteeseen
# http://www.example.com/splat/. Tämä tuottaa autentikoinnin tapauksessa
# sen, että käyttäjän tarvitsee kirjautua kahdesti (kerran www ja kerran
# www.example.com). Mutta jos UseCanonicalName on "Off", niin Apache 
# ohjaa oikeaan osoitteeseen http://www/splat/.
UseCanonicalName Off

# DocumentRoot: oletushakemisto sivustoille
DocumentRoot "/var/www/html"

# Jokaiseen hakemistoon johon Apachella on pääsy voidaan määrittää
# palvelut ja ominaisuudet jotka sallitaan / kielletään kyseisessä
# hakemistossa ja sen alihakemistoissa
# Oletukseksi määritetään hyvin rajoitetut ominaisuudet 
<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>

# Tästä eteenpäin sinun tulee erityisesti sallia (enable) tietyt
# ominaisuudet
# Vaihda myös tämä, jos vaihdat DocumentRoot määritettä (yllä).
<Directory "/var/www/html">

# Mahdollisia arvoja Options määritteelle ovat "None", "All",
# tai mikä tahansa yhdistelmä seuraavista
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Huomaa että "MultiViews" täytyy määrittää erikseen se ei tule 
# "Options All" mukana
# Arvojen selitykset 
# (https://httpd.apache.org/docs-2.0/mod/core.html#options):

# Indexes - Jos annettu pelkkä hakemisto ja sieltä puuttuu DirectoryIndex
# kohdassa määritetyn niminen tiedosto, niin mod_autoindex moduli luo
# asiakkaalle kyseisen hakemiston listauksen.

# Includes - mod_includen mukanaan tuomat Server-side includes (shtml)
# sallitaan

# FollowSymLinks- Palvelin seuraa symbolisia linkkejä

# SymLinksifOwnerMatch - Palvelin seuraa symbolisia linkkejä vain jos
# kohdetiedoston tai -hakemiston omistaa sama käyttäjäid kuin linkin
# ExecCGI - CGI skriptien käyttö mod_cgi:n avulla sallittu

# MultiViews - jos palvelin saa kyselyn /some/dir/foo, 
# ja kyseisessä hakemistossa (/some/dir) on MultiViews käytössä
# ja /some/dir/foo ei ole olemassa, niin palvelin etsii hakemistosta
# kaikki tiedostot nimeltä foo.* ja luo tilapäisen "type map"in ja
# valitsee niistä parhaan asiakkaan vaatimuksiin
   
Options Indexes FollowSymLinks

# AllowOverride kontrolloi .htaccess tiedostoihin laitettavat
# määritetteet. Se voi olla "All", "None" tai mikä tahansa 
# yhdistelmä seuraavista:
# Options FileInfo AuthConfig Limit
# Lisätietoa autentikoinnista:
# https://httpd.apache.org/docs/2.0/howto/auth.html

# None - .htaccess-tiedostot jätetään huomioitta

# AuthConfig - Sallii lupamääritteiden käytön
# Lupamääritteitä voivat olla:
# - AuthDBMGroupFile - Käyttäjäryhmien nimet sisältävä DBM-tiedosto.
# Käyttää mod_auth_dbm-moduulia, joka tarjoaa perusautentikoinnin, missä
# käyttäjänimet ja salasanat tallennetaan DBM-tyyppiseen tietokantaan
# toisin kuin mod_auth-moduuli, joka käyttää tekstitiedostoja.
# Lisää DBM-tiedostoista ja niiden luonnista:
# http://www.apacheweek.com/features/dbmauth
# - AuthDBMUserFile - Käyttäjien nimet ja salasanat sisältävä DBM-
# tiedosto
# - AuthGroupFile - Käyttäjäryhmät sisältävä tekstitiedosto
# - AuthName - Salasanaa pyytävän ikkunan Title-osan teksti
# - AuthType - Hakemiston autentikointitapa, joka voi olla joko Basic
# tai Digest. Digest lähettää tiedon suojattuna (toisin kuin Basic),
# mutta toimii vain tietyillä selaimilla, lisätietoja Digest tavan
# käytöstä löydät osoitteesta:
# https://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html

# AuthUserFile - Käyttäjien nimet ja salasanat sisältävän 
# tekstitiedoston nimi

# Require - Määrittää ketkä autentikoidut käyttäjät pääsevät resurssiin

# Esimerkki:
# AuthType Basic
# AuthName "Restricted Resource"
# AuthUserFile /web/users
# AuthGroupFile /web/groups
# Require group admin
AllowOverride None

# Määritetään kenellä on oikeus palvelimelle
# Order määrittää allow ja deny määritteiden järjestyksen
# Määritteet (ja niihin alla määritetyt tiedot) luetaan annetussa
# järjestyksessä. Näin ollen jälkimmäisenä annettu määrite päättää
# oletuskäytännön (Allow,Deny -> Oletuksena kaikilta kielletty).

# Esim. (päästää vain Apache.org-domainiin kuuluvat koneet, 
# muut kielletään):
# Order Deny,Allow
# Deny from all
# Allow from apache.org

# Esim. (Päästää vain apache.org-domainiin kuuluvat, oletuksena kielto)
# Order Allow,Deny
# Allow from apache.org
# Deny from foo.apache.org

# Esim. (Päästää kaikki, koska oletuksena vapaa pääsy, huomaa järjestys)
# Order Deny,Allow
# Allow from apache.org
# Deny from foo.apache.org

# Edellä olevat esimerkit tarkemmin:
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#order

# Allow määritteellä annetaan ne koneet, joilla on oikeus palvelimelle
# Pääsyä voidaan kontrolloida IP-osoitteella, -alueella tai muilla
# ympäristömuuttujista saatavalla tiedolla. Ympäristö muuttujien käytöstä
# löydät tietoja ja esimerkkejä mm. seuraavista osoitteista:
# https://httpd.apache.org/docs/2.0/mod/mod_access.html#allow
# https://httpd.apache.org/docs/2.0/mod/mod_setenvif.html
# https://httpd.apache.org/docs/2.0/env.html
# http://www.serverwatch.com/tutorials/article.php/1132731
# Esimerkkejä:
# Allow from apache.org
# Allow from .net example.edu
# Allow from 10.1.2.3
# Allow from 192.168.1.104 192.168.1.205
# Allow from 10.1
# Allow from 10 172.20 192.168.2
# Allow from 10.1.0.0/255.255.0.0
# Allow from 10.1.0.0/16 
# Allow from 2001:db8::a00:20ff:fea7:ccea
# Allow from 2001:db8::a00:20ff:fea7:ccea/10

Order allow,deny
Allow from all

# Lopettaa oletushakemiston (/var/www/html) oikeuksien käsittelyn
</Directory>
# UserDir on hakemiston nimi, josta käyttäjän kotihakemistossa
# sijaitsevat www-sivut haetaan ~käyttäjänimi haulla.
# Käyttäjän kotihakemiston oikeuksiksi (/home/userid) tulee muuttaa 711
# ja /home/userid/public_html oikeudet tulee olla 755,
# Muuten asiakas ei pääse hakemistoon ja saa "403 Forbidden"-ilmoituksen.

<IfModule mod_userdir.c>
# Ottaaksesi käyttäjien kotihakemistojen alla olevat www-sivut käyttöön
# kommentoi seuraava rivi
   UserDir disable
# ja poista risuaita seuraavan edestä
       #UserDir public_html
</IfModule>

# Halutessasi laittaa määritteet kaikkien käyttäjien www-hakemistoihin
# käytä /home/*/public_html polkua
# Esimerkki:
# <Directory /home/*/public_html>
# AllowOverride AuthConfig
# </Directory>

# DirectoryIndex: Minkä nimisiä tiedostoja haetaan, jos vain hakemisto
# annettu. Yleensä tähän lisätään mm. index.htm, index.php,
# index.php3, default.htm, default.html jne.
DirectoryIndex index.html index.html.var

# AccessFileName tiedoston nimi
AccessFileName .htaccess

# Seuraavat rivit estävät .htaccess ja .htpasswd tiedostoja näkymästä
# asiakkaille (vain Apache näkee ne oikeutta tarkistaessaan)
<Files ~ "^\.ht">
   Order allow,deny
   Deny from all
</Files>

# mime.type-tiedoston sijainti
TypesConfig /etc/mime.types

# Oletus MIME-tyyppi. Perus-HTML sivustoille oikea valinta on text/plain 
# Sovelluksille tai pääasiallisesti kuville
# "application/octet-stream" voi olla parempi vaihtoehto
DefaultType text/plain

# MIME-tyypin tunnistukseen käytettävän MIMEMagicFile-tiedoston sijainti
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
   MIMEMagicFile conf/magic
</IfModule>

# Tallennetaanko lokeihin asiakkaiden nimet vai pelkät IP-osoitteet
# esim. www.apache.org (on) tai 204.62.129.132 (off).
HostnameLookups Off

# EnableMMAP lukee tiedoston muistiinsa voidakseen prosessoida ne ennen
# lähetystä asiakkaalle. Tämä on olennaista palvelimen päässä
# käsiteltäville tiedostoille kuten .shtml. Oletuksena päällä.
# Lisätietoja: https://httpd.apache.org/docs/2.0/mod/core.html#enablemmap
#EnableMMAP off

# EnableSendfile määritteen ollessa päällä Apache näyttää staattisen
# tiedoston asiakkaalle käsittelemättä sitä ensin. Päällä oletuksena.
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile
#EnableSendfile off

# ErrorLog: Virhelogitiedoston sijainti
ErrorLog logs/error_log

# LogLevel: Virhelogitiedostoon tallennettavien viestien taso.
# Mahdollisia arvoja: debug, info, notice, warn, error, crit, 
# alert, emerg.
# Tarkemmin: https://httpd.apache.org/docs/2.0/mod/core.html#loglevel
LogLevel warn
# Palvelimelle kohdistuneet pyynnöt taltioidaan CustomLog määritteen
# mukaisesti.
# Login tiedot voidaan määrittää ympäristömuuttujien avulla.
# Login muotoiluun vaikuttavia rivejä
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# mod_logio moduulin ollessa ladattuna voi käyttää combinedio muotoilua, 
# joka sisältää todellisten lähetettyjen ja saatujen tavujen lukumäärän.
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

# Tavallisen käyttölogin (access logfile) sijainti ja tyyppi.
# Oletuksena käyttöön otetaan combined tyyppi, jossa logitiedot yhdistetty
#CustomLog logs/access_log common
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
CustomLog logs/access_log combined

# Voit lisätä logiin tiedon, joka sisältää palvelimen version, virtuaali-isännän
# nimen palvelimen generoimiin sivuihin (virhesivut, ftp-listaukset jne).
# Vaihtoehto "EMail" sisältää myös sähköpostin lähetyksen ServerAdminille.
# Valitse joku seuraavista kolmesta:  On | Off | EMail
ServerSignature On

# Lisää tässä kohdin niin monta aliasnimeä kuin haluat muodossa 
# Alias fakename realname
# Esimerkki: 
# Alias /image /ftp/pub/image
# Jolloin pyyntö http://myserver/image/foo.gif palauttaa tiedoston
# /ftp/pub/image/foo.gif, jonka siis ei tarvitse olla /var/www/html/ alla.
# /icons/ alias FancyIndexeding toimintoa varten on oletuksena käytössä.
# FancyIndexing tarkoittaa tapaa tehdä hakemistolistaus niin, että se muodostuu
# eri sarakkeista ikonille, tiedostonimelle (Name), tiedoston muutosajalle 
# (Last modified), tiedostokoolle (Size) ja kuvaukselle (Description). 
# Mikäli FancyIndexing on poissa päältä, hakemistolistaus on tavallinen
# järjestämätön lista.
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
   Options Indexes MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

# WebDAV module configuration section.
# WebDAV on www-sivujen etähallintaan tarkoitettu standardi. 
# Esimerkiksi WebDev, joka on php:llä toteutettu sivustonhallintasovellus,
# tukee WebDAV-protokollaa.
<IfModule mod_dav_fs.c>
   # WebDAV-lukitustietokannan sijainti
   DAVLockDB /var/lib/dav/lockdb
</IfModule>

# ScriptAliakset ovat kuin aliakset mutta CGI-skriptejä varten
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"


# cgi-scriptien hakemisto ja määritteet
<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options None
   Order allow,deny
   Allow from all
</Directory>

# Redirect määritteen avulla voit ohjata asiakkaan toisaalle
# Esimerkki:
# Redirect /service http://foo2.bar.com/service
# Ohjaa asiakkaan pyynnön http://pyynnönsaanutpalvelin/service/foo.txt
# osoitteeseen http://foo2.bar.com/service/foo.txt

# Palvelimen generoimien listausten määritteet
IndexOptions FancyIndexing VersionSort NameWidth=*
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# Oletuskuvake niille tiedoistoille joiden kuvaketta ei määritetty yllä
DefaultIcon /icons/unknown.gif
#AddDescription salli pienen selityksen liittämisen tiedostopäätteiden mukaan
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz

# ReadmeName liitetään listauksen loppuun ja HeaderName listauksen alkuun
ReadmeName README.html
HeaderName HEADER.html

# IndexIgnore sisältää tiedostonimet, joita ei listata
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

# DefaultLanguage ja AddLanguage mahdollistaa dokumentin kielen määrittämisen
# jonka jälkeen sisältötarkastelun (content negotiation) avulla voit näyttää
# asiakkaalle dokumentin hänen selaimeensa määrittämällä kielellä.
# Ohjeistusta monikielisten sivustojen hallintaan löytyy
# osoitteesta http://www.cs.tut.fi/~jkorpela/multi/index-en.htm
# Oletuskielen määrittäminen
# DefaultLanguage nl
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
# Lisää tämä itse
AddLanguage fi .fi

# Muuta kielien prioriteetin määrittävä LanguagePriority haluamaksesi
# Lisää alkuun halutessasi fi
LanguagePriority fi en 
# ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN
# zh-TW

# Jos halutunkielistä sivua ei löydy tai löytyy useita, niin 
# Prefer hakee priorityjärjestyksestä ensimmäiseksi parhaan
# ja Fallback näyttää ensimmäisen languagepriority listasta
ForceLanguagePriority Prefer Fallback

# Oletusmerkistö
AddDefaultCharset UTF-8

# AddType mahdollistaa MIME määritysten korvaamisen tietyille tiedostotyypeille
#AddType application/x-tar .tgz

# AddEncoding mahdollistaa joidenkin selainten purkaa pakattu tiedosto lennossa
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz

# Jos AddEncoding on kommentoituna kannattaa mediatyypit ilmaista
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

# AddHandler mahdollistaa tiettyjen tiedostopäätteiden liittämisen
# käsittelijöihin eli tiedostotyyppiin liittymättömiin tapahtumiin
# Käyttä CGI-skriptejä muualla kuin ScriptAliased merkityissä
# hakemistoissa (Sinun tulee myös lisästä "ExecCGI" "Options" määritteeseen)
#AddHandler cgi-script .cgi

# Tiedostoille, joilla on omat HTTP otsikot (headers).
#AddHandler send-as-is asis

# Tyyppikartoille (.var):
# (Oletuksena päälle, jotta Apachen oletussivu voidaan näyttää usealla kielellä)
AddHandler type-map var

# Filttereiden avulla voit käsitellä tiedoston ennen asiakkaalle lähettämistä
# Filters allow you to process content before it is sent to the client.
# .shtml tiedostot vaativat myös "Includes" "Options" määritteeseen).
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

# Action mahdollistaa halutun CGI-skriptin suorittamisen tietyn tiedostotyypin
# yhteydessä
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location

# Mukautetut virheilmoitukset voivat tulla kolmessa muodossa:
# 1) pelkkä teksti 2) sisäinen ohjaus 3) ulkoinen ohjaus
# Esimerkit:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html

# Edellisiä yhdistämällä voimme antaa virheilmoitukset asiakkaan kielellä.
# Alias ohjaa kaikki /error/HTTP_<error>.html.var vastaukset virheenmukaisiin
# monikielisiin kokoelmiin. Includes korvaa halutun tekstin.
# Voit muuttaa viestejä muuttamatta oletus  HTTP_<error>.html.var tiedostoa
# lisäämällä rivin
# Alias /error/include/ "/oma/include/polku/"
# Jolloin voit luoda omia tiedostojasi kopioimalla /var/www/error/include/ 
# "/oma/include/polku/" hakemistoon.
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
   <Directory "/var/www/error">
       AllowOverride None
       Options IncludesNoExec
       AddOutputFilter Includes html
       AddHandler type-map var
       Order allow,deny
       Allow from all
       LanguagePriority en es de fr
       ForceLanguagePriority Prefer Fallback
   </Directory>

#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>

# Seuraavat määritteet korjaavat ongelmia tietyissä selaimissa
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0 

# Korjataan non-GET pyyntöjä
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully

# Mahdollistetaan mod_status-moduulin luoda palvelintilaraportteja
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

# Mahdollistaa etäpalvelimen määritysrapotteja
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

# Proxypalvelimen määritteet. Poista risuaidat mahdollistaaksesi Proxyn.
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Proxy *>
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Proxy>

# Proxyn HTTP/1.1 "Via:" headers -käsittely.
# "Full" lisää palvelinversion, "Block" poistaa kaikki Via: headers:it)
# Valitse Off | On | Full | Block
#ProxyVia On

# Proxyn cachen mahdollistaminen
# Lisätietoa https://httpd.apache.org/docs-2.0/mod/mod_cache.html
#<IfModule mod_disk_cache.c>
#   CacheEnable disk /
#   CacheRoot "/var/cache/mod_proxy"
#</IfModule>
#</IfModule>
# Proxy määritteiden loppu

# 3: Virtuaali-isännät
# Mikäli palvelimellasi on useita domainnimiä tarvitset näitä.
# Poista risuaita ottaaksesi virtuaali-isännät käyttöön
# NameVirtualHost *:80

# HUOM: NameVirtualHost täytyy sisältää portin, jos mod_ssl käytössä
# VirtualHost sisältöpohja:
# Lähes mikä tahansa määritettä voidaan käyttää Virtuaali-isännän sisällössä
# Sisältöpohja on tarkoitettu niille pyynnöille joiden palvelinnimeä ei
# tunnisteta.
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

Katso myös[muokkaa]