本文介紹在Linux+Apache上的實現方法:
1、修改http.conf
假設你想控制/usr/local/apache/htdocs下各目錄的不同訪問權限,你可以在與之間加入一行:
AllowOverride All
意思是在/usr/local/apache/htdocs下不同目錄的訪問權限由該目錄下的.htaccess文件來控制,而且不同目錄的權限策略可互相覆蓋。
2、編輯你想要控制的目錄下的.htaccess文件
假設你的phpmyadmin目錄在/usr/local/apache/htdocs下,你可以這樣在phpmyadmin目錄下創建一個.htaccess文件,內容如下:
AuthUserFile /usr/local/apache/pass/pwdPhp
AuthType Basic
AuthName "Database Security Zone"
ErrorDocument 401 /catchErrors/err_401.html
require valid-user
該文件說明了幾個問題:
(1) 用戶信息存放在/usr/local/apache/pass/pwdPhp中.
(2) 認證類型為基本型(此外還有一些其他的加密類型).
(3) ErrorDocument 所指向的html文件.
(4) 認證方式:用戶認證(valid-user)或組認證(valid-group).
3. 生成用戶密碼文件
有一個用戶密碼生成程序:htpasswd(在/usr/local/apache/bin下),它可以加入用戶密碼信息到指定的文件中,如/usr/local/apache/pass/pwdPhp.我的用戶密碼文件內容如下:
admin:a0Hplbj33QjV2
guest:R0BYSO383QjVT
4. 重起apache deamon
/usr/local/apche/bin/apachectl restart
5. 測試
用IE浏覽受保護的頁面,如http://ip/phpmyadmin/ (可能需要refresh幾次才能湊效),這時應該出現一個身份認證窗口,你需要輸入用戶名(admin / guest)和密碼(******)才能訪問這個頁面。