我來寫個詳細的:Win32下具體實現Apache的使用者驗證(原創)_PHP

來源:互聯網
上載者:User
關鍵字 使用者 驗證 原創 實現 具體 詳細 檔案 訪問 user1
Apache

Win32下具體實現Apache的使用者驗證
相信大家採用的驗證方法很多種,而在Win32環境下如何設定Apache使用者驗證的介紹很少,手冊上介紹的也是Unix和linux環境下的配置,象我這樣在win32下苦苦摸索Apache的人應該不少,我根據自己的經驗介紹一下自己是如何在Win32環境下實現apache的使用者驗證功能的。

方法一:以單使用者方式實現某目錄只能由某個使用者或幾個使用者訪問。
假設Apache的web根目錄為 d:/home,對應URL為 http://localhost/
如欲使d:/home/test目錄只能由某使用者訪問,該目錄對應URL為http://localhost/test,訪問該URL時需要彈出驗證對話方塊。
d:/users目錄用來存放密碼檔案 user.passwd

1、製作使用者密碼檔案
在命令列方式先用Apache內建的工具htpasswd.exe產生一個密碼檔案叫user.passwd,-c參數表示建立檔案,無參數表示在該口令檔案中以添加方式增加一個使用者。
D:\apache\bin>htpasswd -bc d:/users/user.passwd user1 123456
這樣,就產生了d:/users/user.passwd 口令檔案,裡面有一行文字 user1:$apr1$4S3.....$.su.8AIrDEYMX7jKv2RT9/
成功增加了一個user1的使用者,如果想再添加其他使用者,就採用追加方式添加使用者:
D:\apache\bin>htpasswd -b d:/users/user.passwd user2 123456
D:\apache\bin>htpasswd -b d:/users/user.passwd user3 123456

好了,當添加完使用者,就可以著手實現使用者驗證了。

2、製作訪問驗證檔案 .htaccess
開啟記事本,輸入以下文字:

authtype basic
authname "www.home.net"
authuserfile d:/users/users.passwd
require user user1

然後另存新檔 .htaccess,儲存路徑為你想實現驗證的目錄:d:/home/test/下,注意檔案類型選"所有檔案",檔案名稱為".htaccess",否則就不會產生 .htaccess 檔案了。

到這裡,指定某個使用者驗證的設定就完成了,在瀏覽器中輸入驗證目錄所對應的地址 http://localhost/test/,會發現瀏覽器彈出一個對話方塊要求你輸入使用者名稱和口令,你就只能輸入使用者user1和密碼12345才能進去,輸入其他使用者如user2,user3是沒用的。

3、實現指定某幾個使用者對一個目錄的驗證
例如決定 http://localhost/test/ 能由user1和user3訪問,user2不能訪問,則編輯 d:/home/test/.htaccess 檔案,把最後的一句:
require user user1
改為:
require user user1 user3
如此就實現了 http://localhost/test/ 只能由user1和user2訪問

4、實現所有合法使用者對一個目錄的驗證
例如決定 http://localhost/test/ 能由 d:/users/user.passwd 檔案裡的所有使用者訪問,則編輯 d:/home/test/.htaccess 檔案,把最後的一句改為 :

require valid-user

就可以實現在 user.passwd 裡使用者都能訪問http://localhost/test/了,只要輸入的使用者名稱和密碼沒有錯誤。

方法二:採用群組使用者方式實現驗證
要實現其實也很簡單,在方法一中對 user.passwd 檔案裡的使用者進行分組,建立使用者組檔案,再在 .htaccess 檔案裡指定 authgroupfile 就可以了。假設 user.passwd 中已經添加了很多使用者 (user1,user2,user3,user4,...)
1、建立一個使用者組檔案 d:/users/user.group ,內容如下:

manager:user1 user3
game:user2 user4
download:user5 user6 user7

如此,user.group 檔案裡把 user1至user7這7個使用者分為了3個組:manager,game,download 。

2、實現某組使用者能訪問 http://localhost/test/
編輯 d:/home/test/.htaccess 檔案,內容如下:

authtype basic
authname "www.home.net"
authuserfile d:/users/users.passwd
authgroupfile d:/users/user.group
require group game

那麼,http://localhost/test/就只能由 game組裡的使用者 user2,user4 才能訪問了。

以上步驟,對於熟悉編程開發的同志來說,完全可以做個圖形介面程式來完成,就省事多了。
至此,Apache在Win32環境下的簡單驗證就實現了。看來和 Linux下的設定方法差不多,我卻走了不少彎路才摸索出來,慚愧慚愧啊。
實現Apache的驗證方法還有數種途徑,以上只是一方面而已。
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.