在PHP網(wǎng)站開(kāi)發(fā)中,如何保證網(wǎng)站的安全性是我們必須考慮的問(wèn)題,之前介紹過(guò)通過(guò)apache配置文件對目錄訪(fǎng)問(wèn)權限進(jìn)行控制的方法,今天會(huì )以教程的形式向大家介紹如何使用apache和htaccess對相關(guān)目錄進(jìn)行密碼保護配置,比如對網(wǎng)站管理后臺目錄訪(fǎng)問(wèn)進(jìn)行密碼保護,訪(fǎng)問(wèn)后臺管理目錄時(shí)必須使用合法用戶(hù)名和密碼才能訪(fǎng)問(wèn)。
在繼續往下學(xué)習時(shí),如果你對apache htpasswd.exe命令不太熟悉,推薦你先查看相關(guān)的PHP教程。
PHP教程推薦
apache htpasswd命令用法詳解Apache禁止目錄訪(fǎng)問(wèn)方法介紹對目錄設置密碼保護配置說(shuō)明
在本教程中主要介紹兩種方法,一種是通過(guò)apache httpd.conf配置文件對管理后臺目錄設置密碼保護,適用于具有服務(wù)器控制權限的用戶(hù),另一種是通過(guò).htaccess配置文件對目錄設置密碼保護,適用于虛擬主機用戶(hù)。
apache httpd.conf配置文件對目錄設置密碼保護教程
1、使用apache htpasswd.exe創(chuàng )建密碼文件,命令請看PHP推薦教程:
apache htpasswd命令用法詳解2、打開(kāi)apache httpd.conf配置文件
3、找到<Directory>…</Directory>塊,對test目錄訪(fǎng)問(wèn)設置密碼保護
1
2
3
4
5
6
7
8
9
10
11
<Directory E:/phpos/leapsoul/test/>
AuthType Basic
AuthName "WORKING CENTER"
AuthUserFile C:/.passwd
Require user www.leapsoul.cn
</Directory>
4、保存apache httpd.conf,并重啟apache服務(wù)器。
上述配置只允許www.leapsoul.cn用戶(hù)以正確的密碼登陸才能訪(fǎng)問(wèn)leapsoul/test/目錄
注意事項
1、設置密碼保護的目錄路徑不要使用反斜杠,使用/
2、密碼文件引用需要使用絕對路徑
使用.htaccess配置文件對目錄設置密碼保護教程
1、使用apache htpasswd.exe創(chuàng )建密碼文件,命令請看PHP推薦教程:
apache htpasswd命令用法詳解2、創(chuàng )建.htaccess配置文件,你可以使用EditPlus新建文件并保存為.htaccess配置文件
3、在.htaccess配置文件中的寫(xiě)入配置信息,.htaccess配置文件的寫(xiě)法與apache配置文件有所不同,沒(méi)有Directory
1
2
3
4
5
6
7
AuthType Basic
AuthName "WORKING CENTER"
AuthUserFile C:/.passwd
Require user www.leapsoul.cn
4、保存.htaccess配置文件,并將.htaccess配置文件放置在需要設置密碼保護的目錄下,比如leapsoul/test/目錄
上述.htaccess配置功能與第一種方法實(shí)現的功能是一樣的。
你也可以在瀏覽器的URL框內以以下方式輸入用戶(hù)名和密碼(未加密的)來(lái)直接進(jìn)行訪(fǎng)問(wèn):
1
http://username:password@www.yourwebsite.com/directory/
.htaccess配置注意事項
如何開(kāi)啟.htaccess配置功能?
除了和apache httpd.conf配置一樣需要注意的那些問(wèn)題之外,容易出現的一個(gè)錯誤是如果配置不正確,會(huì )出現.htaccess配置文件不起作用的問(wèn)題,這是因為apache AllowOverride指令,決定了你的.htaccess是否能正常開(kāi)啟并啟用。從安全性考慮,apache httpd.conf配置文件中網(wǎng)站根目錄的AllowOverride屬性一般都配置成不允許任何Override ,即
1
2
3
4
5
<Directory />
AllowOverride None
</Directory>
當AllowOverride 設置為 None 時(shí),.htaccess 文件將被完全忽略。當此指令設置為 All 時(shí),所有具有 “.htaccess” 作用域的指令都允許出現在 .htaccess 文件中。所以要使apache能夠正常的讀取.htaccess文件的內容,開(kāi)啟.htaccess功能,使.htaccess配置文件中的設置起作用,就必須對網(wǎng)站根目錄或者.htaccess 所在目錄進(jìn)行配置,將AllowOverride None更改為AllowOverride All。
如果你是虛擬主機用戶(hù)在使用.htaccess配置文件對目錄設置密碼保護時(shí),請咨詢(xún)你的主機商是否允許啟用.htaccess,并告知網(wǎng)站目錄的絕對路徑。
apache和.htaccess配置選項說(shuō)明
AuthName - 瀏覽器彈出登錄框時(shí)顯示的被保護的名字,可自行改動(dòng)。
AuthType Basic - 認證的類(lèi)型。
AuthUserFile - 指向apache htpasswd.exe生成的密碼文件,必須是絕對路徑
Require - 設置可以對被保護目錄進(jìn)行訪(fǎng)問(wèn)的用戶(hù)。
require valid-user -就是指在 .passwd 中的任何一位用戶(hù)都可以訪(fǎng)問(wèn)。
require user username 或 require user username1 username2 username3 - 指定.passwd中的特定的用戶(hù)可以訪(fǎng)問(wèn)被保護的目錄。
require group groupname - 指定用戶(hù)組來(lái)訪(fǎng)問(wèn)被保護目錄。
設置組的方法是再創(chuàng )建一個(gè).htgroup配置文件:
groupname1: username1 username2 username3
groupname2: username1 username3 username4
再在apache httpd.conf配置文件或者.htaccess配置文件中添加:
AuthGroupFile C:/.htgroup
使用apache和htaccess對目錄訪(fǎng)問(wèn)設置密碼保護的效果
使用apache和htaccess對目錄訪(fǎng)問(wèn)設置密碼保護
至此在本篇PHP教程中介紹使用apache和htaccess對目錄設置密碼保護配置方法就完成了,這兩種方法對提升網(wǎng)站目錄的安全性非常有用,特別是htaccess的安全性非常高,虛擬主機用戶(hù)可以考慮使用。
注:
PHP網(wǎng)站開(kāi)發(fā)教程-leapsoul.cn版權所有,轉載時(shí)請以鏈接形式注明原始出處及本聲明,謝謝。