Apache伺服器已經內建使用者驗證機制,大家只要適當的加以設置,便可以控制網站的某些部分要使用者驗證。大家只要跟著我一步步做下來就應該可以輕鬆實現用戶驗證。
前期準備,必須已經安裝Apache。
第1步:
我們在/var/www(apache的主頁根目錄)下建立一個test目錄。
mkdir /var/www/test
第2步:
然後我們編輯httpd.conf
添加
Alias /test"/var/www/test" <Directory "/var/www/test"> Options Indexes MultiViews AllowOverride AuthConfig #表示進行驗證Order allow,deny Allow from all </Directory> #AllowOverride AuthConfig 表示進行身份驗證這是關鍵的設置
第3步:
在/var/www/test建立.htaccess文件
vi /var/www/test/.htaccess
AuthName "frank share web"
AuthType Basic
AuthUserFile /var/www/test/.htpasswd
require valid-user
#AuthName 描述,隨便寫
#AuthUserFile /var/www/test/.htpasswd
#require valid-user 或require user frank 限制是所有合法使用者或指定使用者
#密碼檔建議使用.htpasswd,因為apache預設系統對「.ht」開頭的檔案預設不允許外部讀取,安全係數會高一點喔。
第4步:
是創建apache的驗證用戶
htpasswd -c /var/www/test/.htpasswd frank
#第一次建立用戶要用到-c 參數第2次新增用戶,就不用-c參數
如果你們想修改密碼,可以如下
htpasswd -m .htpasswd frank
第5步:
ok,重啟apache服務,然後訪問http://你的網站地址/test 如果順利的話,應該能看到一個用戶驗證的彈出窗口,只要填入第4步創建的用戶名和密碼就行。
為了伺服器的效能,一般不建議使用AllowOverride AuthConfig或AllowOverride ALL,因為這會使伺服器會不斷的去尋找.htaccess,從而影響伺服器的效能,一般我們把一些後台管理介面或其他特殊目錄可能需要加驗證這個需求。