ディレクトリをパスワードで保護しますが、そのディレクトリのファイルは保護しませんか?


8

.htaccessファイルと.htpasswdファイルを使用して、ユーザー名とパスワードの組み合わせでディレクトリを保護することはできるが、その中のファイルを保護することはできないのかと思っていました。つまり、そのディレクトリ内の画像を友達にリンクすることはできますが、ユーザー名/パスワードなしではディレクトリ自体の閲覧は許可されません。よろしくお願いします。

回答:


9

あなたのこれを試してください.htaccess

Require valid-user

<Files ?*>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>

ここでRequire valid-userは、既知のログインが必要です。次に、名前に1文字以上のファイルに対するこの制限を修正します。これは?*<Files>セクションのglobパターンが一致するものです。これは、囲まれたルールがファイルに適用されますが、ディレクトリには適用されないことを意味します。

修正されたファイルのルールでは、キーはSatisfy anyです。これにより、認証情報または IPアドレスのいずれかで承認を行うことができます。次に、任意の IPアドレスの通過を許可するため、リクエストは常に承認されます。

したがって、このディレクトリまたはそのサブディレクトリを参照するにはログインが必要になりますが、そこから直接ファイルを取得する必要はありません。

あなたが欲しかったのはそれです。


0

はい、名前やパターンでファイルやディレクトリを保護できます。これを使用して、.ht *ファイルへのアクセスを制限する必要があります。Apacheの設定を確認してください。必要なファイルパターンはおそらく「/ $」です。


0

LocationMatchauthをディレクトリインデックスに制限するために使用します。


<LocationMatch "/ pictures"> AuthUserFile /home/asdasd/public_html/user5678/pictures/.htpasswd AuthGroupFile / dev / null AuthName "Restricted Directory" AuthType Basic </ LocationMatch> <Limit GET POST> require valid-user </ Limit>これは、/ picturesにある現在の.htaccessファイルです。私が間違っていることはありますか?これは、500内部サーバーエラーを返すようです。

a)について読んでくださいLocationMatch。正規表現が必要です。b)もちろんrequire valid-userLocationMatchブロックの内側に配置する必要があります(Limitとにかくなぜ声明なのですか?)
マリアン

0

フォルダーのインデックスであるApacheの表示をオフにするだけです。これを.htaccessに入れます:

Options -Indexes

このようにして、ユーザーがにアクセスhttp://www.url.com/folder/すると、ディレクトリリスト拒否エラーが表示されます。しかし、彼らが訪問するhttp://www.url.com/folder/file.jpgと、ファイルを見ることができます。


1
これは尋ねられたのではなく、この無効なリストではなく、パスワードで保護されています
Krzysztof Bociurko

-1

認証されたユーザーのみがディレクトリの一覧を表示できるようにしたいが、だれでもファイルをダウンロードできるようにする場合(ユーザーにリンクを送信できるようにするため)、ユーザーに要求する何らかのタイプ(PHP、ASPなど)のスクリプトが必要です。パスワードと、正しい場合はディレクトリの内容が表示されます。このスクリプトをディレクトリに置き、index.phpという名前を付けます。これにより、Apacheがディレクトリインデックスを生成するのではなく、スクリプトが提供されます。


-1

はい。フォルダーの内容をリストするindex.htmlファイルを追加し、.htaccessを使用してそのファイルへのアクセスを制限します。インデックスを動的にする場合は、何らかのスクリプト(またはサーバー側インクルード)を使用してインデックスを生成する必要があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.