0

この単純なディレクトリ アクセス ルールについて助けが必要です。申し訳ありませんが、Apache 2.4 を使い始めたばかりで、これまで行ったことがありません。

Apache 2.4 を、保護されたリソースへのログインを確認できる段階に設定しました。ユーザー/パスを入力すると、保護されたリソースにアクセスできます。

今、私は次のことをしたいと思っていますが、これをどのように行うことができるかわかりません。

  1. Web ルートは /var/www に設定されています
  2. /var/www/login - 誰でもアクセスできます。このフォルダーには login.html と logout.html が含まれているため、認証は必要ありません。(私はこれを機能させました)
  3. /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.

どうすればこれを機能させることができますか?

4

1 に答える 1