.htaccessで特定のファイルにだけBasic認証をかける方法
2007.10.24
error この記事は最終更新日から17年以上が経過しています。
今回の記事は、.htaccessによるBasic認証のかけ方の続編です。
.htaccess とは
Webサーバー(Apache)の挙動を、ディレクトリ単位で指定するための設定ファイルです。
「.htaccess」という名前のテキストファイルを、該当ディレクトリにFTPでアップロードしたり、TelnetやSSH等でログインして、vi 等のエディタで直接作成・編集すればOKです。
.htaccess を設置すると、そのディレクトリと、その下層に位置する全てのディレクトリに、.htaccess で指定した設定が反映されます。
Basic認証とは
特定のディレクトリやファイルに対するアクセスに対して、CGI等の動的なコンテンツを用いることなく、ユーザー名とパスワードを要求して認証を行うことのできる手法です。
Webサーバー側の機能として提供される認証方法なので、プログラミング等の知識を必要とせず、比較的簡単にユーザー認証を行なうことが出来ます。
Basic認証のかけられたディレクトリやファイルにアクセスすると、ユーザー名とパスワードを入力するためのダイアログが表示され、正しいユーザー名とパスワードを入力しないと、そのディレクトリやファイルを閲覧することができません。
ディレクトリ単位での、基本的なBasic認証のかけ方に関しては、前述の記事.htaccessによるBasic認証のかけ方を参照のこと。
今回は、さらにもう一件、先日旧ブログから転載してきた記事、特定のファイルに対するアクセス制限と組み合わせて、「特定のファイルのみに Basic認証をかける」という応用編です。
特定のファイルのみに Basic認証をかける
例えば、今ご覧になっているこのブログを管理している Movable Type をはじめとする、Web上で管理を行なうCMSの管理用CGI。
当然ながら、インターネット上で管理していますから、管理者用のログインフォームには、URLさえわかれば誰でもアクセスできるわけです。
もちろん、そこから先の画面には、ユーザー名やパスワードを入力してログインするので、誰でも見られるわけではないですが、この管理者用のプログラムだけに Basic認証をかけることができれば、よりセキュリティの強度は高まります。
その他にも、サイトの構成上の都合によって、ディレクトリ単位ではなく、ファイル単位で Basic認証をかけたい、というケースは、意外とあるかと思います。
ちょっとおさらいしておくと、まず基本的な Basic認証のかけ方は、
AuthUserFile /home/amethyst/data/pass/password.dat
AuthName "Input Your Name And Password"
AuthType Basic
require valid-user
こんな感じです。
それぞれの項目の詳細については、.htaccessによるBasic認証のかけ方を参照してください。
そして、基本的なファイル単位でのアクセス制限の方法は、
<Files filename>
order deny,allow
deny from all
</Files>
という感じです。
こちらも詳細は、特定のファイルに対するアクセス制限を参照してください。
ここでのミソは、
- 「require」で指定したユーザーに対して Basic認証を行う
- 「<Files>~</Files>」で指定したファイルに対してアクセス制限を行なう
という2点です。
つまり、該当ディレクトリ内のファイルの中で「admin.cgi」というCGIスクリプトだけに Basic認証をかけたい、という場合、
AuthUserFile /home/amethyst/data/pass/password.dat
AuthName "Input Your Name And Password"
AuthType Basic
<Files admin.cgi>
require valid-user
</Files>
と書けば良いわけです。
.htaccessで特定のディレクトリのみ「/」を「/index.html」にリダイレクトさせる
2023.05.09
指定したディレクトリのみ、トップページへのアクセスを/index.htmlにリダイレクトさせる方法を紹介します。
.htaccessを使ったリダイレクト設定方法—URI変更時の対応を簡単に
2023.05.01
Webサイトの構成変更や移転時に便利なリダイレクト設定方法をご紹介します。.htaccessを使って、URIが変更になった場合でも旧ページから新ページへスムーズに転送できるように設定する方法を解説します。
IPアドレスでアクセス制限する方法を.htaccessで実装
2023.04.07
.htaccessを使って、特定のIPアドレスからのアクセスを制限する方法を紹介します。指定したIP以外のアクセスをブロックしたり、逆に特定のIPを拒否する方法も解説。さらに、Requireディレクティブを使った設定方法も合わせて紹介します。
さくらのレンタルサーバーでPHPを「.html」などの拡張子で実行する方法
2009.09.20
さくらのレンタルサーバーでは、PHPがCGIとして動作しているため、通常の.htaccess設定ではPHPを「.html」拡張子で実行できません。この記事では、特定の手順を踏んでPHPを動作させる方法を詳しく解説します。