技術資料

.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

.htaccessを使ったリダイレクト設定方法—URI変更時の対応を簡単に

2023.05.01

Webサイトの構成変更や移転時に便利なリダイレクト設定方法をご紹介します。.htaccessを使って、URIが変更になった場合でも旧ページから新ページへスムーズに転送できるように設定する方法を解説します。

.htaccess

IPアドレスでアクセス制限する方法を.htaccessで実装

2023.04.07

.htaccessを使って、特定のIPアドレスからのアクセスを制限する方法を紹介します。指定したIP以外のアクセスをブロックしたり、逆に特定のIPを拒否する方法も解説。さらに、Requireディレクティブを使った設定方法も合わせて紹介します。

.htaccess

さくらのレンタルサーバーでPHPを「.html」などの拡張子で実行する方法

2009.09.20

さくらのレンタルサーバーでは、PHPがCGIとして動作しているため、通常の.htaccess設定ではPHPを「.html」拡張子で実行できません。この記事では、特定の手順を踏んでPHPを動作させる方法を詳しく解説します。

.htaccess PHP

阿部辰也へのお仕事の依頼・お問い合わせ

お名前 *必須
会社名
メールアドレス *必須
電話番号
URL
お問い合わせのきっかけ
お問い合わせの内容 *必須
個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP