2012-03-28 10 views
1

私はいくつかの特定のPDFファイルへのアクセスを制限したいと思いますが、私のApache構成には少し問題があります。私は次のように動作するようにFilesMatchディレクティブを持っている:DirectoryMatch内のFilesMatchを使用したApache基本認証

<FilesMatch "\.pdf$"> 
    AuthName "Permission Required" 
    AuthUserFile /path/to/.htpasswd" 
    Require valid-user 
    AuthType Basic 
</FilesMatch> 

は、今私は、私はちょうど私の.htaccessファイルに、より具体的なことができないことを理解し、私は私の中でのLocationMatchやDirectoryMatchを使用する必要があると思います設定ファイル。私は次のことを試してみたが、成功しません:実際のファイルが配置されている

<VirtualHost *:80> 
    DocumentRoot "/var/www/somedomain.com/httpdocs" 
    ServerName somedomain.com:80 
    ServerAlias somedomain.com 
    <DirectoryMatch "^/uploads/(dir1|dir2)"> 
     <FilesMatch "\.pdf$"> 
     AuthName "Permission Required" 
     AuthUserFile "/var/www/somedomain.com/bin/.htpasswd" 
     Require valid-user 
     AuthType Basic 
     </FilesMatch> 
    </DirectoryMatch> 
</VirtualHost> 

http://www.somedomain.com/uploads/dir1/somefile.pdf

私はそれは単純なものだと確信していますが、私はちょうどそれが正常に動作させることはできません。

+0

よう指示しなければならない、あなたは(これはDirectoryMatch' 'に適用されます)' FilesMatch'を開き、それを閉じていませんでした。 – undone

+0

申し訳ありませんが、私は間違った場所からコピー/ペーストしました - 私は実際に行をコメントにしていませんでした(私のコードで修正されました) –

答えて

2
<VirtualHost *:80> 
    DocumentRoot "/var/www/somedomain.com/httpdocs" 
    ServerName somedomain.com:80 
    ServerAlias somedomain.com 
    <DirectoryMatch "^/var/www/somedomain.com/httpdocs/uploads/(dir1|dir2)"> 
     <FilesMatch "\.pdf$"> 
     AuthName "Permission Required" 
     AuthUserFile "/var/www/somedomain.com/bin/.htpasswd" 
     Require valid-user 
     AuthType Basic 
     </FilesMatch> 
    </DirectoryMatch> 
</VirtualHost> 

何か問題が見つかりました。申し訳ありませんが、最初は注意を払っていませんでした。 ProbelmはDirectoryMatchであり、正確にはDirectoryと同じですが、引数として正規表現が必要です。ドキュメントルートが/var/www/somedomain.com/httpdocsときそれではアップロードディレクトリはこの

<DirectoryMatch "^/var/www/somedomain.com/httpdocs/uploads/(dir1|dir2)"> 
     #Somemthibg goes here :-D 
</DirectoryMatch> 
+0

Doh!とても近い。答えをありがとう –

関連する問題