2013-09-26 10 views
5

私はファイルサーバーを持っており、ファイルをサーバーにmod_autoindexを使用しています。 htaccessにユーザ名とパスワードがあるので、特定の人だけがファイルにアクセスできます。私はhtpasswdに別のユーザを追加しましたが、そのユーザがファイル/フォルダのいくつかにアクセスするのが好きです。私は私が何か間違ったことをやっていると確信しているが、私はこの上の任意の良いドキュメントを見つけることができませんhtaccessパスワードが異なるユーザーでファイルを保護する

AuthType Basic 
AuthName "restricted" 
AuthUserFile E:\\path\\to\\.htpasswd 

<Files "filesForAnyUser\\*"> 
    Require valid-user 
</Files> 

<Files "*"> 
Require user admin 
</Files> 

はここに今、私のhtaccessファイルです。

+0

「filesForAnyUser」とは何ですか?それはフォルダですか? –

+0

これは、すべてのユーザが利用できるファイルを持つフォルダです –

+0

'E:\\ path \\ to \\。htpasswd'は反対のスラッシュを使用して' E:/ path/to/.htpasswd'に変更することを検討しますいくつかの特定の状況でいくつかの問題を保存します。 – Prix

答えて

5

「filesForAnyUser」という名前のフォルダとadmin専用のファイルがあるフォルダがある場合は、2つのhtaccessファイルを作成する必要があります。

AuthType Basic 
AuthName "restricted" 
AuthUserFile E:\\path\\to\\.htpasswd 
Require valid-user 

そして、他のディレクトリに1: "filesForAnyUser" の一つ

AuthType Basic 
AuthName "restricted" 
AuthUserFile E:\\path\\to\\.htpasswd 
Require user admin 
+0

が機能しましたが、なぜまたはディレクティブが機能しませんか? –

+0

@UziTech [ディレクトリ](http://httpd.apache.org/docs/current/mod/core.html#directory)と[場所](http://httpd.apache.org/docs/current/mod /core.html#location)には、 "server"と "virtualhost"という設定のコンテキストがあります。 ** ** "htaccess"ではないので、これらのディレクティブはhtaccessファイルで使用できません。htaccessファイルをディレクトリに置くことは、そのディレクトリで ''のようなものです。 –

+0

が理にかなっています。ありがとう –

1

ので、ここでは他の誰のための私の最終的な解決策です。

ルートフォルダに次のように置く:

AuthType Basic 
AuthName "restricted" 
AuthUserFile E:\\path\\to\\.htpasswd 
Require user admin 

を管理し、User1がファイルにアクセスすることができます任意のフォルダに次のように置く:あなたはアクセスのみにUSER1を許可する場合

AuthType Basic 
AuthName "restricted" 
AuthUserFile E:\\path\\to\\.htpasswd 
Require user admin user1 #users separated by space or "Require valid-user" if all users 

を特定のファイル、あなたは<FilesMatch>を使用することができます。

AuthType Basic 
AuthName "restricted" 
AuthUserFile E:\\path\\to\\.htpasswd 
Require user admin 
<FilesMatch "^(doc1.pdf|doc2.txt|doc3.docx)$"> 
    Require user admin user1 #or valid-user 
</FilesMatch> 

これは、管理者を与えますそのフォルダ内のすべてのファイルにアクセスできますが、user1は<FilesMatch>に表示されているファイルのみにアクセスします。

注:<FilesMatch>のファイルは、現在のディレクトリとすべてのサブディレクトリ用です。現在のディレクトリだけに制限する方法がわかりません。

関連する問題