Security Conscious,
High Availability Unix Hosting
.htaccess miniguide

Denne miniguiden gir en kompakt fremstilling av hvordan filen ved navn .htaccess fungerer. Denne filen fungerer som en mekanisme for brukere som lar dem manipulere forskjellige aspekter av webserverens oppførsel.

Rekkevidde

Det er helt avgjørende å forstå at direktivene inne i en .htaccess fil ikke bare gjelder for mappen .htaccess filen ligger i, men også undermapper.

Kommentarer

Kommentarer i .htaccess filer begynner med firkant tegnet '#'. Kommentarer på slutten av linjer genererer feilmeldinger og vil fylle opp feilmeldingsloggene med meningsløse advarsler. Plasser derfor ikke kommentarer på slutten av et direktiv eller slutten av en hvilken som helst linje.

Passordbeskyttelse for mapper

Med riktig innhold og plassering vil en .htaccess bringe frem et vindu som ber om passord, noe som påtvinger autentisering avhengig av mappe. Det følgende eksemplet viser passende innhold for filen.

  AuthName "beskyttede ting"
  AuthType Basic
  AuthUserFile /home/myself/www/private/.htpasswd
  require valid-user

Direktivet AuthName bestemmer et område som autorisasjonen gjelder for, slik at brukeren vet hvilket navn/passord som skal skrives inn. AuthType velger hvilken type autentisering webserveren skal benytte, "Basic" eller "Digest".

Direktivet AuthUserFile bestemmer hvilken tekstfil som skal inneholde brukernavn/passord parene, fortrinnsvis innenfor brukerens hjemmeområde. Av sikkerhetshensyn må du ikke deklarere at denne passordfilen skal lagres i den beskyttede mappen eller noe annet sted under ~/www. Pass også på at filen ikke er lesbar for alle (chmod 0600).

AuthUserFile filen genereres av htpasswd(1). Du vil bli bedt om å skrive inn et passord, to ganger for bekreftelse.

Kjør dette inne i mappen hvor beskyttelse er ønskelig -

  $ htpasswd -c .htpasswd username

Blokkering av forespørsler fra spesifikke adresser

.htaccess filen kan få webserveren til å nekte tilgang fra IP adressen 10.0.0.1, bare ved å tilføye dette til filen -

  Deny from 10.0.0.1

Alternativt -

  <Limit GET>
  order deny,allow
  10.0.0.1
  allow from all
  </Limit>

Hele nettverk kan nektes tilgang til websiten din ved å fjerne det siste tallet, som i 10.0.0..

Spesifikasjon av dokumenter for feilmeldinger

Du kan lage og bruke dine egne dokumenter for feilmeldinger, som vises når feil oppstår, for eksempel ved forespørsler etter filer som ikke finnes. Dette gjøres med ErrorDocument direktivet. Vennligst lag disse dokumentene på en slik måte at de opptar minimal harddisk plass og er uten bilder, siden ormer raskt kan generere massive mengder treff mot disse dokumentene. Dessuten er feilmeldinger som tar lang tid å laste ned irriterende for alle brukere. Deklarer aldri en URL som destinasjon for ErrorDocument. Velg alltid en absolutt eller relativ path (sti) til filen, som demonstrert under.

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

Mappelister

En .htaccess fil kan brukes for å unngå opplisting av innholdet i mappen i fravær av index dokumenter -

  Options -Indexes

For å selektivt blokkere listing av README og alle .gif bilder, bruk IndexIgnore direktivet -

  IndexIgnore README *.gif

Kobling av filnavnendelser

For å gjøre om på standard filassosiasjoner og koble visse filnavnendelser til brukerspesifisert håndtering, kan man bruke AddHandler direktivet.

Anta at det er ønskelig at alle filer med navn som ender i .rat skal gjenkjennes og prosesseres av serveren som cgi programmer -

  AddHandler cgi-script .rat

Med AddType direktivet kan man for et gitt filnavn bestemme en MIME type. For å tvinge koblingen fra alle filer som ender i '.rif' til 'image/gif' typen, bruk -

  AddType image/gif .rif

Tilsvarende, for å koble .foo filer til foo innholdstype, bruk -

  AddType application/x-foo .foo

Hvis du mener en gitt MIME type er verdig gjenkjenning over hele serveren, si ifra til oss.

Innholdsforhandling

Browsere som støtter HTTP/1.1 har evnen til å be om websider og andre ressurser i forskjellige språk og kodingsmåter. Apache modulen mod_negotiation inneholder en valgmulighet kalt MultiViews som implisitt velger filer basert på navn.

  Options +MultiViews

For eksempel, hvis en browser forespør index.html og det ikke finnes noen fil med det navnet, vil webserveren lete etter index.html.no, index.html.en og så videre, avhengig av brukerens språkpreferanser.

Lenker

Apache ressurser

PHP ressurser

  • PHP - The configuration file

Utvalgte direktiver


  End Software Patents!