レンタルサーバーでは、特定のディレクトリに .htaccess
ファイルを置き、アクセス制限をかける場合があります。
例えば、以下を記述した .htaccess
ファイルを置くと、そのディレクトリ以下にはウェブからアクセスできないようになります。
order deny,allow
deny from all
ところが、この設定を行ったにも関わらず、このディレクトリ内の特定のファイル(画像ファイルなど)にはアクセスできてしまうことがあります。
このような状態になる1つの原因は、ウェブサーバーの設定ファイルで、例えば以下の設定が記述されていることです(もしくは、上位のディレクトリに配置された .htaccess
ファイルにこれが書かれていることも考えられます)。
<FilesMatch "\.(jpg|gif|png)$">
order deny,allow
allow from all
</FilesMatch>
.htaccess
ファイルによる設定内容は、ディレクトリの下層にまで引き継がれるため、この FilesMatch
も引き継がれ、拡張子が .jpg
・.gif
・.png
であるファイルにはアクセスができてしまうのです。
これを禁止するには、個別のディレクトリに配置する .htaccess
ファイル内に、これらの拡張子を持つファイルに対するアクセス制限設定を書く(上書きする)必要があります。
<FilesMatch "\.(jpg|gif|png)$">
order deny,allow
deny from all
</FilesMatch>
レンタルサーバーの場合、ウェブサーバーの設定ファイルにどんな記述がされているかは分かりませんので、これは困った問題です。
しかし今示したように、対策はありますので、まずは「こういう問題が起きうる」ということを知ることが大切だと思います。
参考
- Apache HTTP Server Tutorial: .htaccess files – Apache HTTP Server Version 2.4
- Apache チュートリアル: .htaccess ファイル – Apache HTTP サーバ バージョン 2.4
- core – Apache HTTP Server Version 2.4
- core – Apache HTTP サーバ バージョン 2.4
- mod_access_compat – Apache HTTP Server Version 2.4
- mod_access_compat – Apache HTTP サーバ バージョン 2.4