.htaccess 網頁認證的方式,是以目錄為一個驗證的節點,凡要經過此目錄才能瀏覽的網頁,
皆需要透過 .htaccess 的驗證之後才可以存取。
舉例:
我有一個學術單位的網頁,網址為 http://sparc.nfu.edu.tw/~test/test/
是要讓大家都可以來瀏覽的;不過我有一些比較機密性的文件,僅可以提供某些特定的人來瀏覽,
於是這些機密性的文件我都將它放置到網頁根目錄底下的 admin目錄當中,
如今我要讓來存取網址為 http://sparc.nfu.edu.tw/~test/admin/(任何檔案)
都需要透過驗證才能夠瀏覽,我可以這麼做:
步驟1.建立 .htaccess
在 admin 目錄中,建立一個 .htaccess 的檔案,
.htaccess 的檔案內容為 :
AuthName "Admin Login"
AuthUserFile /home1/test/.passwd
AuthType Basic
require valid-user
各欄位的意義:
1. AuthName "Admin Login"
用來設定如下紅色方框內的文字
2. AuthUserFile /home1/test/.passwd
AuthUserFile 用來設定給 .htaccess 驗證時,要使用的帳號密碼資料檔的位置,
需使用絕對路徑的方式來設定。
而 /home1/test/.passwd 帳號密碼資料檔,是由我們自行產生的(在 步驟2 會說明)。
3. AuthType Basic
認證的類型;我們使用 Apache 預設的類型,Basic就可以了
4. require valid-user
讓密碼檔內的使用者都能夠登入(即上面AuthUserFile所指定的檔案)
步驟2. 產生帳號密碼檔
利用 htpasswd 指令來幫我們產生帳號密碼檔
語法:htpasswd [ 參數 ] < 帳號密碼檔 > < 要新建的登入帳號 >
1. 若現在我要新建一個登入帳號 為 test,
而這個時候 /home1/test/.passwd 帳號密碼檔
還不存在,則我需要輸入下列指令:
htpasswd –c /home1/test/.passwd test
(-c 參數用來產生帳號密碼檔 )
*基於安全性上的考量,帳號密碼檔 請勿放置在WWW目錄內(含WWW以下目錄中),
建議使用者可將帳號密碼檔放置在 使用者家目錄 即可。
輸入完之後,它會請您輸入此使用者 test 的密碼,輸入完,
便會產生 /home1/test/.passwd 帳號密碼檔案,
並且在 /home1/test/.passwd 檔案裡面您會看到 test 這個帳號,
與其加密過後的密碼。
(需特別注意的是,如果 /home1/test/.passwd 已經存在的話,
請不要再使用 –c 參數,因為它會覆蓋掉原本/home1/test/.passwd
的內容,只留下我們此次建立的帳號資料 )
2. 如果現在我要再新建一個登入帳號 為 admin,
而這個時候 /home1/test/.passwd 已經存在,
則我只需要輸入下列指令,
htpasswd /home1/test/.passwd admin
然後它依然會請您輸入此使用者的密碼,輸入完畢後,
在 /home1/test/.passwd 就會看到,
您剛剛新建的使用者帳號及密碼的資料了。
經過 步驟1 與 步驟2 的設定之後,
只要有人要來瀏覽我的 http://sparc.nfu.edu.tw/~test/admin/(任何檔案)
就必須要輸入帳號密碼,此時只要輸入在 步驟2 所建立的帳號密碼,就可以登入了。
-------------------------------------------------------------------------------
現在有了一個更方便的工具,那就是 .htaccess 檔案產生器(htaccess Generator)。透過網頁的勾選與設定,在按下 Generator .htaccess File 後便可以得到一個 htaccess 檔,非常方便。
沒有留言:
張貼留言