.htaccessを使ってファイルごとにアクセス制御を行う
投稿日:2015年11月19日
最終更新日:
.htaccessによるアクセス制御
- <Files “hoge.php”> ~ </Files>の間に設定を記述することで、そのファイルに対してのみの制御を行うことができる。
- Allow from (アクセスを許可するIPやリモートホスト)やDeny from (アクセスを拒否するIPや(略))でアクセスを制御できる。
- スパムコメント対策などにも用いられる手法。投稿されたコメントを処理するファイルを防御する。
<Files “hoge.php”> ~ </Files>による設定
.htaccessによる設定は、通常では設置されたディレクトリ(とそのサブディレクトリ)全体に適用されます。ディレクトリ全体にアクセス規制を敷いたりしたい時に使われるので、それはそれでありがたいのですが、時には特定のファイルだけに設定を適用したい時もあります。そんな時に<Files “hoge.php”> ~ </Files>を使います。例えば、
[VIM]
上記の例のように、<Files の後に設定を適用したいファイルの名前を入れて(ファイル名はダブルクォーテーションで囲む)タグを閉じます。<Files “hoge.php”> ~ </Files>間に設定を記述していけばいいです。
冒頭でちらっと触れましたが、アクセスを許可するIPやリモートホストはAllowディレクティブで、拒否するものはDenyディレクティブで指定します。先ほどのように全部問答無用で拒否する場合は単純にdeny from allの記述で完結しますし、全部許可するなら通常は書く必要もありません(書かなければならないのはディレクトリがアクセス禁止設定になっている時に例外でアクセス許可を出す時くらいだと思います)。しかし、大抵の場合は「この場合は許可、この場合は拒否」みたいな感じになると思います。
こんな場合は、Orderディレクティブなるものも登場します。記述例はこんな感じです。
[VIM]
#ホワイトリスト方式で運用する