認證對象:某一個網站目錄。html
啓用認證apache
1.即用AllowOverride
指令指定哪些指令在針對單個目錄的配置文件中有效:AllowOverride AuthConfig
服務器
2.設置密碼登陸訪問某個站點或者文件等網絡
先介紹用密碼來保護服務器上的目錄。 首先須要創建一個密碼文件。這個文件應該放在不能被網絡訪問的位置,以免被下載。例如,若是/usr/local/apache/htdocs之外的空間不能被網絡訪問,那麼能夠考慮把密碼文件放在/usr/local/apache/passwd目錄中。 Apache在其安裝目錄的bin子目錄中提供了htpasswd工具,用於創建密碼文件,能夠這樣使用: htpasswd -c /usr/local/apache/passwd/passwords rbowen htpasswd會要你輸入密碼,並要求從新輸入以進行確認: # htpasswd -c /usr/local/apache/passwd/passwords rbowen New password: mypassword Re-type new password: mypassword Adding password for user rbowen 若是htpasswd不在搜索路徑中,則必須使用完整路徑,如:/usr/local/apache/bin/htpasswd 而後修改httpd.conf或.htaccess文件,指示服務器容許哪些用戶訪問並向用戶索取密碼。若要保護/usr/local/apache/htdocs/secret目錄,則能夠將下列指令寫入/usr/local/apache/htdocs/secret/.htaccess或者httpd.conf的<Directory /usr/local/apache/apache/htdocs/secret>段。 AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/local/apache/passwd/passwords Require user rbowen
對應的實際測試效果:編輯器
</VirtualHost>
<VirtualHost *:80>
ServerName 127.0.0.1
DocumentRoot "E:/wamp/www/"
ErrorLog "E:/wamp/logs/www-error.log"
CustomLog "E:/wamp/logs/www-access.log" common
<Directory "E:/wamp/www/">
Options Indexes FollowSymLinks
#AllowOverride all
AllowOverride AuthConfig
AuthType Basic
AuthName "test authconfig"
AuthUserFile E:/wamp/bin/apache/Apache2.2.21/htpasswd/passwords
Require user rbowen ide
Order allow,deny
Allow from all
</Directory> 工具
</VirtualHost>測試
3容許多我的訪問:網站
若是想容許多人訪問,那麼就必須創建一個組文件以肯定組中的用戶。其格式很簡單,能夠用你喜歡的編輯器創建,例如:ui
GroupName: rbowen dpitts sungo rshersey
它只是每組一行的一個用空格分隔的組成員列表。
向已有的密碼文件中增長一個用戶,能夠輸入:
htpasswd /usr/local/apache/passwd/passwords dpitts
程序的提示和上面的同樣,可是它會追加到已有的文件中,而不是建一個新文件(參數 -c
能夠強制創建新的密碼文件)。
如今,須要將.htaccess
文件修改爲這樣:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require group GroupName
如今,GroupName
組中的成員都在password
文件中有一個相應的記錄,從而容許他們輸入正確的密碼進行訪問。
除了創建組文件,還有另外一種途徑容許多人訪問,就是使用以下指令:
Require valid-user
使用上述指令,而不是 Require user rbowen
,能夠容許密碼文件中的全部用戶使用正確的密碼進行訪問。經過爲每一個組創建一個密碼文件,這裏甚至容許列舉各個組,其優勢是Apache只須要檢查一個文件(而不是兩個),其缺點是,必須維護衆多密碼文件,並且要確保AuthUserFile
指定了一個正確的密碼文件
ps:上述若是人多的話,認證須要耗費時間。
4其餘:
Allow
和Deny
指令能夠容許或拒絕來自特定主機名或主機地址的訪問,同時,Order
指令告訴Apache處理這兩個指令的順序,以改變過濾器。
這些指令的用法:
Allow from address
address能夠是一個IP地址(或者IP地址的一部分),也能夠是一個完整的域名(或者域名的一部分),還能夠同時指定多個IP地址和域名。
好比,要拒毫不受歡迎的兜售垃圾的站點:
Deny from 205.252.46.165
這樣,這個指令所管轄的區域將拒絕全部來自該地址的訪問。除了指定IP地址,也能夠指定域名,如:
Deny from host.example.com
另外,還能夠指定地址或域名的一部分來阻止一個羣體:
Deny from 192.101.205
Deny from cyberthugs.com moreidiots.com
Deny from ke
Order
能夠組合Deny
和Allow
指令,以保證在容許一個羣體訪問的同時,對其中的一些又加以限制:
Order deny,allow
Deny from all
Allow from dev.example.com
只列出Allow
指令不會獲得你想要的結果,由於它在容許指定對象訪問的同時並不由止其餘未列出的對象的訪問。因此上例使用的方法是:首先拒絕任何人,而後容許來自特定主機的訪問。