一般而言,Apache2的目錄是大家都可以存取的,但如果是比較私密的檔案需要帳號密碼登入才能存取,那只能用 .htaccess 的功能來把某個目錄鎖住了。以下範例皆以 /var/www/protect 當做要鎖住的目錄,登入帳號為 linaro。
當然你必須先確定 /var/www/protect 這個目錄是存在的,而且權限是 apache2 可以存取的,這時才能對它做限制。
# mkdir /var/www/protect # chown -R www-data:www-data /var/www/protect
然後在 /var/www/protect 目錄底下編輯 .htaccess檔案
# nano /var/www/protect/.htaccess
編輯檔案輸入:
Options +Indexes # 以列表表示檔案結構 IndexIngore .. # 忽略回到上一層 AuthName "Please Input Account and Password" AuthType Basic AuthUserFile /etc/apache2/apache2.passwd require user linaro # 如果兩個以上的使用者,以空白分開即可
然後就是建立密碼檔案,並把它存放在 /etc/apache2/apache2.passwd 裡面。如果第一次執行(即/etc/apache2/apache2.passwd檔案不存在)
# htpasswd -c /etc/apache2/apache2.passwd linaro
如果已經有了 /etc/apache2/apache2.passwd 檔案,只是單純新增使用者,則為
# htpasswd /etc/apache2/apache2.passwd linaro
如果要刪除 linaro 使用者的帳號密碼則為
# htpasswd -D /etc/apache2/apache2.passwd linaro
輸入密碼並且再次確認以建立檔案,此時不需要重啟 apache2 服務(更改 .htaccess 檔案都不需要重啟服務),使用瀏覽器觀看 http://ip/protect目錄 就必須使用帳號密碼方能瀏覽了。