.htaccessファイルと.htpasswdファイルを使用して、ユーザー名とパスワードの組み合わせでディレクトリを保護することはできるが、その中のファイルを保護することはできないのかと思っていました。つまり、そのディレクトリ内の画像を友達にリンクすることはできますが、ユーザー名/パスワードなしではディレクトリ自体の閲覧は許可されません。よろしくお願いします。
.htaccessファイルと.htpasswdファイルを使用して、ユーザー名とパスワードの組み合わせでディレクトリを保護することはできるが、その中のファイルを保護することはできないのかと思っていました。つまり、そのディレクトリ内の画像を友達にリンクすることはできますが、ユーザー名/パスワードなしではディレクトリ自体の閲覧は許可されません。よろしくお願いします。
回答:
あなたのこれを試してください.htaccess
:
Require valid-user
<Files ?*>
Order allow,deny
Allow from all
Satisfy any
</Files>
ここでRequire valid-user
は、既知のログインが必要です。次に、名前に1文字以上のファイルに対するこの制限を修正します。これは?*
、<Files>
セクションのglobパターンが一致するものです。これは、囲まれたルールがファイルに適用されますが、ディレクトリには適用されないことを意味します。
修正されたファイルのルールでは、キーはSatisfy any
です。これにより、認証情報または IPアドレスのいずれかで承認を行うことができます。次に、任意の IPアドレスの通過を許可するため、リクエストは常に承認されます。
したがって、このディレクトリまたはそのサブディレクトリを参照するにはログインが必要になりますが、そこから直接ファイルを取得する必要はありません。
あなたが欲しかったのはそれです。
LocationMatch
authをディレクトリインデックスに制限するために使用します。
LocationMatch
。正規表現が必要です。b)もちろんrequire valid-user
、LocationMatch
ブロックの内側に配置する必要があります(Limit
とにかくなぜ声明なのですか?)
フォルダーのインデックスであるApacheの表示をオフにするだけです。これを.htaccessに入れます:
Options -Indexes
このようにして、ユーザーがにアクセスhttp://www.url.com/folder/
すると、ディレクトリリスト拒否エラーが表示されます。しかし、彼らが訪問するhttp://www.url.com/folder/file.jpg
と、ファイルを見ることができます。