Webサイトの特定ディレクトリにアクセス制限をかける方法

会員ページやダウンロードページなど、Webサイトの特定ディレクトリ内にあるファイルにアクセス制限をかける方法として、BASIC認証(基本認証)と呼ばれる機能を使うやり方を解説します。

【コンテンツ】

  1. BASIC認証(基本認証)の概要
  2. 「.htaccess」の作成
  3. ID/パスワードファイルの作成
  4. XSERVERでのBASIC認証の利用
  5. ロリポップでのBASIC認証の利用

【記事執筆時の環境】
レンタルサーバー:XSERVER、ロリポップ

BASIC認証(基本認証)の概要

BASIC認証が施されたWebページでは、ユーザーがアクセスした際、認証ダイアログが表示されてユーザー名(ID)とパスワードの入力を求められます。

認証ダイアログ

入力したIDとパスワードが一致していないと、エラーメッセージが表示されます。
エラーメッセージはサーバーやブラウザによって異なりますが、独自に作成することも可能です。

BASIC認証の設定は、ファイル単位でなく、ディレクトリ単位で行います。
設定は、「.htaccess」に記述します。
アクセスを許可するIDとパスワードに関しては、その組を記述したファイルを別に用意します。
BASIC認証は、この2つのファイルを用意すると実現できます。

また、多くのレンタルサーバーでは、管理画面からBASIC認証を用いてアクセス制限を設定する機能を持っています。

「.htaccess」の作成

テキストエディタで、以下の4行を記述します。

1行目の"IDとパスワードを記述したファイルのパス"は、サーバー内のフルパスを指定します。
httpで始まるURLではありませんので注意します。

2行目の"領域名"は任意の名前を付けますが、アクセスした際の認証ダイアログに表示されますので、適した名前にします。
また、文字化けの可能性がありますので日本語は避け、半角英数文字で記述します。

作成した「.htaccess」は、アクセス制限をかけるディレクトリにおきます。
そのディレクトリ以下のファイル・サブディレクトリすべてがアクセス制限の対象となります。

【補足】
サーバー内のフルパスがどうなっているかわからない場合は、次のようにして調べることができます。

例えば、fullpath.phpという任意の名前のPHPファイルを作成し、以下のように記述してフルパスを知りたいディレクトリにおきます。

このファイルをブラウザでアクセスすると、ファイルまでのフルパスが表示されますので、サーバー内のディレクトリ構成を知ることができます。

ID/パスワードファイルの作成

IDとパスワードを組にして記述したファイルを作成します。
ファイル名は任意につけられますが、一般的には「.htpasswd」という名前が用いられています。

内容としては、以下のようにIDとパスワードを半角コロンで区切り、1行に1組ずつ記述します。何組あっても構いません。

hanako:uSpgpQTl02u3c
taro:4KzgRLpqapbHw

ここで、パスワードは暗号化されており、本来入力する文字列にはなっていません。
パスワードを暗号化するには、暗号化サービスを提供しているサイトを利用すると便利です。
例えば、下記サイトにアクセスします。
http://www.nishishi.com/scripts/htpasswd/

ファイルを作成したら、Webサイト内の適当なディレクトリにおきます。
「.htaccess」と同じディレクトリでなくても構いません。
ただ、ディレクトリとファイル名は、「.htaccess」のAuthUserFileに記述した内容と一致する必要があります。

以上、2つのファイル「.htaccess」「.htpasswd」を作成して、Webサイト内に設置すれば、BASIC認証の仕組みを利用することができます。

XSERVERでのBASIC認証の利用

XSERVERでは、管理画面からBASIC認証機能を使って、ディレクトリにアクセス制限をかけることができます。

サーバーパネルにログインします。

設定対象とするドメインをドロップダウンリストから選択します。

[アクセス制限]をクリックします。

アクセス制限をクリック

アクセス制限をかけたいディレクトリの横にあるボタンでON/OFFを切り替えます。
下層のディレクトリを表示したい時は、[フォルダ名]の列の該当箇所をクリックします。

アクセス制限設定画面

IDとパスワードを設定するために、指定するディレクトリの[ユーザ設定]をクリックします。

[ユーザID]と[パスワード]を入力して、[ユーザの追加]ボタンをクリックします。
パスワードはシステム側で暗号化してくれますので、通常の文字列を入力します。

アクセス制限情報の入力画面

これで、アクセス制限の設定ができました。
なお、XSERVERでは、管理画面から"AuthName"の設定はできません。

設定が完了すると、以下のような「.htaccess」が作成されます。

XSERVERの.htaccess例

XSERVERでは、「.htpasswd」は「.htaccess」と違うディレクトリに配置されているのがわかります。

ロリポップでのBASIC認証の利用

ロリポップも、管理画面からBASIC認証機能を使って、ディレクトリにアクセス制限をかけることができます。

ユーザー専用ページにログインします。

[WEBツール]-[アクセス制限]をクリックします。

アクセス制限をクリック

[新規作成]ボタンをクリックします。

新規作成ボタンをクリック

アクセス制限を設定したいドメインをドロップダウンリストから選択し、ディレクトリを指定します。
「認証フォームタイトル」「アカウント名」「パスワード」を入力して、[作成]ボタンをクリックします。
パスワードはシステム側で暗号化してくれますので、通常の文字列を入力します。

アクセス制限設定画面

これで、アクセス制限の設定ができました。
設定が完了すると、以下のような「.htaccess」が作成されます。

ロリポップの.htaccess例

ロリポップでは、「.htpasswd」は「.htaccess」と同じディレクトリに配置されているのがわかります。

なお、2行目の「AuthGroupFile」とは、ログインするグループのIDとパスワードを記述したファイルの場所を指定しますが、BASIC認証ではユーザー毎の認証のため必要ありません。
「/dev/null」とは指定が無いという意味です。

スポンサーリンク

特集記事

  • jQuery Mobile Image

    jQuery Mobile を基本から覚える
    スマホサイト制作に最適なフレームワークの利用方法を解説。DEMOページ・サンプルコードで動作を確認できます。

スポンサーリンク

ページの先頭へ