Hvis du f.eks. udvikler et nyt site der endnu ikke er offentligt, eller vil have et ekstra lag af sikkerhed på et internt website er http baseret adgangskontrol, der er både fordele og ulemper ved at bruge .htaccess derfor gennemgår vi både metoden med og uden brug af .htaccess, først med: (/var/www/.htaccess)
AuthType Basic AuthName "Nothing here for you to see" AuthUserFile /var/htpasswd Require valid-user
Efterfølgende opretter jeg en password fil i /var/htpasswd
root@lab1:/var/www# htpasswd -c /var/htpasswd mike New password: Re-type new password: Adding password for user mike
hvis jeg vil oprette endnu en bruger ser det sådan her ud:
root@lab1:/var/www# htpasswd /var/htpasswd sofie New password: Re-type new password: Adding password for user sofie
Resultatet:
.htaccess har nogle performancemæssige issues, særligt ved komplekse website, derfor fraråder mange at bruge det, derfor kan det nogengange give mening at flytte dine statements op i apache’s config fil istedet, det kan f.eks. se sådan her ud i /etc/apache2/sites-available/default:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName lab1.mikjaer.com DocumentRoot /var/www <Directory /var/www> AuthType Basic AuthName "Nothing here for you to see" AuthUserFile /var/htaccess Require valid-user </Directory> </VirtualHost>
Der er ikke rigtigt meget at fortælle, det virker på samme måde, blot tillader denne metode at slå .htaccess fra og dermed klemme lidt mere ydelse ud af serveren.
Hvis du vil lave adgangskontrollen lidt mere raffineret kan du kræve specifikke brugere:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName lab1.mikjaer.com DocumentRoot /var/www <Directory /var/www> AuthType Basic AuthName "Nothing here for you to see" AuthUserFile /var/htaccess require user mike sofie </Directory> <Directory /var/www/admin> AuthType Basic AuthName "Nothing here for you to see" AuthUserFile /var/htaccess require user mike </Directory> </VirtualHost>
Nu har mike og sofie adgang til /www men kun mike til /www/admin, og er mike først logget ind på /www skal han ikke taste koden igen når han tilgår /www/admin.