Her kan du lese om hvordan man legger opp en passordfil, og hvordan man beskytter en mappe og en enkelt fil. For å benytte seg av passordbeskyttelse bør man ha shell-tilgang til serveren. Jeg har ikke testet .htaccess på en Windows-versjon av Apache, men funksjonaliteten skal være den samme som for UNIX-baserte systemer. Jeg benytter meg av et Linux shell.
Hvis du har en hjemmeside som kjøres på en Apache-tjener kan man lett passordbeskytte et område. Du må tilkjennegi deg med et brukernavn og passord før du får tilgang til en bestemt fil eller mappe på et webområde via din nettleser.
På serveren min er min katalog "/home/martin" og mitt webområdet ligger i "/home/martin/www".
For å lage en passordfil skriver man i shell-et "htpasswd -bc passord-fil brukernavn passord". Switchen -b bruker man for å skrive hele kommandoen i en streng. Switchen -c er for å oprette en ny fil.
Nå blir filen "/home/martin/web.passord laget", og brukeren "martin" blir laget med passordet "martinspassord".
Velger du å liste opp innholdet i filen med kommandoen "cat web.passord" vil du få se det krypterte passordet i stedet for passordet du skrev inn.
For å legge til en ny bruker bruker du den samme kommandoen bare uten -c operatoren.
Ønsker du å endre passord for en av brukerene bruker du samme kommandoen som når du legger til en ny bruker.
Mappen jeg har velgt å beskytte er "/home/martin/www/passord/". For å beskytte mappen må du opprette en filen .htaccess.
I .htaccess legger vi til følgende informasjon:
AuthUserFile henviser til hvor passordfilen ligger
AuthGroupFile har vi ikke satt, da vi ikke har kommet til dette enda.
AuthName er selve teksten som kommer opp i login boksen.
require funksjonen er hva som trengs for å komme inn på siden. De forskjellige typene er:
- valid-user, som er bare at brukeren må eksistere.
- user - f.eks require user martin, da kommer kun brukeren martin inn på siden.
- group - f.eks require group admin, da kommer kun brukere som er med i admin gruppen inn. Les mer om bruk av grupper i neste punkt.
La oss si at det nå finnes 6 brukere i min passord fil - martin, dagfinn, per, ola, petter og nils. Og man vil lage en gruppe med brukerene martin, dagfinn og petter, og en annen gruppe som med de andre brukerene.
Når man definerer en gruppe, gjøres dette bare i fritekst. Gruppefilen kommer jeg til å legge i "/home/martin/web.gruppe" og man redigerer denne som man gjør med vanlige tekstfiler.
I filen legger jeg inn følgende data.
Når man så bruker denne .htaccess filen
vil kun martin, dagfinn og per ha tilgang til denne katalogen.
Ved bruk av .htaccess kan man også beskytte enkeltfiler. Det trenger altså ikke nødvendigvis være hele kataloger. Alt man trenger å gjøre her er å legge inn parameteren
I dette tilfellet er kun filen "admin.php" passordbeskyttet, og kun gruppen admin har tilgang til denne filen. Alle andre filer i denne katalogen er tilgjenngelig for alle. Du kan også velge å bruke wildcards, dvs *. Slik at man kan beskytte *.php, og da blir alle php-filer beskyttet.