(2) あるファイルに限定してアクセスを拒否
あるファイルに限定してアクセスを拒否したい場合は、アクセス拒否の対象を限定する記述を加えることで実現できます。
▲指定したファイルだけにアクセスできなくする |
■記述 (※単一のファイルをアクセス拒否)
この場合は、先ほどの記述に「対象ファイルを指定する記述」を加えます。 例えば、以下のように記述します。
<Files 対象ファイル名>
deny from all
</Files>
「対象ファイル名」部分には、アクセスを拒否したいファイル名を記述します。 例えば、「 password.dat 」ファイルを指定する記述は、以下の通りです。
<Files password.dat>
deny from all
</Files>
■記述 (※複数のファイルをアクセス拒否)
特定の拡張子が付いたファイルをすべてアクセス拒否したいなら、以下のように記述します。
<Files ~ "\.dat$">
deny from all
</Files>
ファイル名の代わりに、「 ~ 」(チルダ記号)を記述すると、その後に正規表現を記述できます。 その正規表現にマッチするファイルがすべてアクセス拒否の対象になります。
上記は、拡張子「.dat」のファイルを指定した例です。
もし、複数種類の拡張子を対象にしてすべてアクセス拒否したいのであれば、以下のように記述できます。
<Files ~ "\.(dat|pm|ini)$">
deny from all
</Files>
上記は、拡張子「.dat」と「.pm」と「.ini」の3種類のファイルを対象にした例です。
このように書いておくだけで、該当するファイルへは、自分も含めて誰もアクセスできなくなります。
※サブディレクトリにあるファイルに対してもアクセス拒否は有効です。
■結果
この設定が施されたファイルへブラウザでアクセスすると、前のページでご紹介したのと同じように、「403 Forbidden」エラーが表示されます。
■用途
このように、「特定のファイルへのアクセス拒否する」設定は、CGIなどのツールが内部で利用するだけのデータファイルで、第三者に勝手にダウンロードされると不都合がある場合などに活用できます。
例えば、CGIの設定が記述されたファイルが他のファイルと同じディレクトリ内にあるために、ディレクトリをまるごとアクセス拒否するわけにはいかない場合に使えるでしょう。
さて、次に、自分だけは無制限にアクセスでき、自分以外のユーザからのアクセスはすべて拒否する方法をご紹介いたします。