对于这个简单的目录访问规则,我需要一些帮助——抱歉,我刚开始使用 Apache 2.4,之前没有这样做过。
我已将 Apache 2.4 配置到一个阶段,在该阶段我可以看到受保护资源的登录,一旦我输入用户/密码,我就可以访问受保护的资源。
现在我想做以下事情,但我不确定如何完成。
- Web 根目录设置为 /var/www
- /var/www/login - 任何人都可以访问,不需要身份验证,因为此文件夹包含 login.html 和 logout.html。(我得到了这个工作)
- /var/www - 我的应用程序根目录中的所有其他内容只能在身份验证后访问。这是我不知道如何设置的部分。
我的虚拟主机配置看起来像这样。
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www"
ServerName auth-test.ml.com
ErrorLog "logs/test-error_log"
CustomLog "logs/test-access_log" common
<Directory "/var/www">
AuthFormProvider file
AuthType form
AuthName "Reserved Area"
Session On
SessionCookieName session path=/
require valid-user
# This is the login page
ErrorDocument 401 /login/index.html
# This is the file containing users login data
AuthUserFile /usr/local/apache2/auth/.htpasswd
</Directory>
<Directory /var/www/login>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
在我访问http://example.com之类的应用程序时, 我希望看到 login.html 页面返回,但我收到以下错误消息:
Unauthorized
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.
Additionally, a 401 Unauthorized error was encountered while trying to use an ErrorDocument to handle the request.
我怎样才能使这项工作?