.htaccess でのアクセス設定に注意

投稿日:

レンタルサーバーでは、特定のディレクトリに .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>

レンタルサーバーの場合、ウェブサーバーの設定ファイルにどんな記述がされているかは分かりませんので、これは困った問題です。

しかし今示したように、対策はありますので、まずは「こういう問題が起きうる」ということを知ることが大切だと思います。

参考

-Tips

執筆者:fitallright

関連記事

【VPS, クラウドサーバー】MySQL (MariaDB) が突然停止する場合は、innodb_buffer_pool_size が大きすぎるかもしれません

VPS や クラウドサーバー(OS は Linux)を借りて、MySQL (MariaDB) を使っている場合のお話しです。 目次現象調査my.cnf で innodb_buffer_pool_siz …

エックスサーバーに Node.js をインストールする

エックスサーバーに Node.js をインストールする

エックスサーバーは、SSH を使ってターミナルエミュレータでログインすることができますが、そのままだと Node.js が使えません。つまり、node コマンド(npm, npx も)が使えません。 …

データ転送量とは?

レンタルサーバーにおけるデータ転送量とは?

レンタルサーバーの機能やスペックを見ていると「転送量の目安」といった項目を目にすることがあります。 ウェブサイトへのアクセスが少ないうちは、あまり気にする必要はない項目ではあるのですが、できれば、 レ …

no image

エックスサーバーの「WordPress簡単移行」機能

目次概要メモ簡単移行の処理について試してみたお知らせマニュアルページ 概要 エックスサーバーの「WordPress簡単移行」機能は、他社のサーバーで運営していた WordPress サイトを、エックス …

複数絡むレイアウトのサイトで表の幅を広げられるようにする

複数カラムレイアウトのサイトで表の幅を広げられるようにする

複数カラムレイアウトのサイトで表の幅を広げられるようにする方法について説明します。

ロリポップ!「スタンダードプラン」
さくらのレンタルサーバ「スタンダードプラン」