項目需要必須提供用戶名及密碼才能訪問站點,所以google查詢了一下,參見做了如下配置:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com
<Directory /data/wwwroot/111.com> //指定認證的目錄
AllowOverride AuthConfig //這個相當於打開認證的開關
AuthName "111.com user auth" //自定義認證的名字,作用不大
AuthType Basic //認證的類型,一般爲Basic,其他類型阿銘沒用過
AuthUserFile /data/.htpasswd //指定密碼文件所在位置
require valid-user //指定需要認證的用戶爲全部可用用戶
</Directory>
</VirtualHost>
結果:網站500錯誤了,apache報錯Unknown Authz provider: valid-user error,
又查了查,結果確認是因爲版本問題,我的apache是2.4的,以上配置估計是2.2,所以出現錯誤了,帖出2.4的正常配置如下:
<VirtualHost *:80>
ServerName www.test.com
DocumentRoot /var/www/html/test
<Directory /var/www/html/test>
#Options Indexes FollowSymLinks MultiViews
#AllowOverride AuthConfig
AllowOverride All
Order allow,deny
allow from all
<RequireAny>
#指定某路徑不需要輸入用戶密碼
#SetEnvIf REQUEST_URI "^/(admin|secure)/" PROTECTED
#<RequireAll>
#Require not env PROTECTED
#Require all granted
#</RequireAll>
<RequireAll>
AuthType Basic
AuthName "Vaild"
AuthUserFile /var/www/html/test/.htpasswd
Require valid-user
</RequireAll>
</RequireAny>
</Directory>
</VirtualHost>
備註:以上配置放到網站根目錄下的.htaccess也是可以,但,我比較喜歡放apache的配置文件裏面,另外:也有可能需要啓用以下模塊
sudo a2enmod authz_user
最後感謝以下網址提供的參考:https://www.the-art-of-web.com/system/apache-authorization/