この単純なディレクトリ アクセス ルールについて助けが必要です。申し訳ありませんが、Apache 2.4 を使い始めたばかりで、これまで行ったことがありません。
Apache 2.4 を、保護されたリソースへのログインを確認できる段階に設定しました。ユーザー/パスを入力すると、保護されたリソースにアクセスできます。
今、私は次のことをしたいと思っていますが、これをどのように行うことができるかわかりません。
- Web ルートは /var/www に設定されています
- /var/www/login - 誰でもアクセスできます。このフォルダーには login.html と logout.html が含まれているため、認証は必要ありません。(私はこれを機能させました)
- /var/www - アプリのルートにある他のすべてのコンテンツは、認証後にのみアクセスできます。設定方法がわからない部分です。
私のvhost confは次のようになります。
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.
どうすればこれを機能させることができますか?