http://sparc.nfu.edu.tw/teacher/htaccess/
.htaccess
網頁認證的方式,是以目錄為一個驗證的節點,凡要經過此目錄才能瀏覽的網頁,
皆需要透過
.htaccess
的驗證之後才可以存取。
舉例:
是要讓大家都可以來瀏覽的;不過我有一些比較機密性的文件,僅可以提供某些特定的人來瀏覽,
於是這些機密性的文件我都將它放置到網頁根目錄底下的
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
的設定之後,
就必須要輸入帳號密碼,此時只要輸入在
步驟2
所建立的帳號密碼,就可以登入了。
沒有留言:
張貼留言