.htaccessを使うと、特定のページやフォルダにパスワード認証を設定できます。会員専用ページや確認用ページなど、限られた人だけに見せたい内容を保護したい時に便利です。
ここでは、シェルが使えない環境を前提に、FTPだけで設定する方法を分かりやすく解説します。.htpasswdの作成方法や、.htaccessへの書き方、アップロード時の注意点まで順番に確認できます。
この記事で分かること
.htaccessで使うパスワード認証は、一般的にBasic認証と呼ばれる仕組みです。ページにアクセスした時に認証画面が表示され、正しいユーザー名とパスワードを入力した人だけが中身を見られるようになります。
Webサイト全体ではなく、特定のディレクトリ単位で設定できるため、制作中のページや会員向けページ、管理用フォルダの保護に向いています。
パスワード認証は、公開したくないページを一時的または継続的に保護したい時によく使われます。
パスワード認証を設定する時は、主に次の2つのファイルを使います。
.htaccessとは
Webサーバーの動作を制御する設定ファイルです。今回は、認証を有効にするための設定を書き込みます。
.htpasswdとは
認証に使うユーザー名とパスワード情報を保存するファイルです。パスワードは平文ではなく、暗号化された状態で保存します。
シェルが使えない環境でも、テキストファイルを作成してFTPでアップロードすれば設定できます。流れは次の通りです。
.htpasswd は、ユーザー名と暗号化済みパスワードを1行で記述します。書式は次のようになります。
user:$apr1$xxxx$xxxxxxxxxxxxxxxxxxxx
この例では、user がユーザー名です。コロンの右側に入る文字列が、暗号化されたパスワードです。
シェルが使える環境であればコマンドで作成できますが、今回はその方法は使いません。シェルが使えない場合は、.htpasswd を生成できるオンラインツールなどを利用し、生成された文字列をそのままテキストファイルに貼り付けて保存します。
ユーザー名やパスワードのサンプルをそのまま使うのではなく、実際に運用する時は推測されにくい内容に変更してください。
次に、保護したいフォルダに置く .htaccess を作成します。基本的な設定例は次の通りです。
AuthType Basic AuthName "Restricted Area" AuthUserFile /home/username/.htpasswd Require valid-user
それぞれの意味は次の通りです。
重要なのは AuthUserFile のパスです。ここはURLではなく、サーバー内の絶対パスを指定する必要があります。たとえば /home/username/.htpasswd の部分は、ご利用中のサーバー環境に合わせて変更してください。
.htaccess は、認証をかけたいフォルダに置きます。たとえば admin フォルダ全体にパスワード認証をかけたい場合は、次のような場所に配置します。
/public_html/admin/.htaccess
このように設置すると、admin フォルダ以下のファイルやページに対して認証がかかります。
.htpasswd は、できるだけ公開ディレクトリの外に置くのが安全です。たとえば public_html の外に置ける環境なら、そこに保存するのが一般的です。
.htpasswd を公開フォルダ内に置くと、設定や環境によっては外部から見えてしまうおそれがあります。可能な限り、Web公開領域の外へ設置してください。
ファイルをアップロードしたら、対象のURLへブラウザでアクセスします。正しく設定できていれば、ユーザー名とパスワードの入力画面が表示されます。
入力しても画面が開かない場合や、500エラーになる場合は、.htaccessの記述や .htpasswd の保存場所、AuthUserFile のパス指定を見直してください。
とくに多いのは、AuthUserFile のパス違いと .htpasswd の保存場所のミスです。この2点を優先して確認すると原因を見つけやすくなります。
WISNET / わいずねっと のレンタルサーバー
用途に合わせて2つのレンタルサーバープランをご用意しています。
.htaccessのパスワード認証は、特定のページやフォルダを手軽に保護したい時に便利な方法です。シェルが使えない環境でも、.htpasswd と .htaccess を作成し、FTPでアップロードすれば設定できます。
ただし、.htpasswd の設置場所や AuthUserFile のパス指定を誤ると、認証が動かなかったり500エラーになったりすることがあります。作業前には必ずバックアップを取り、1つずつ確認しながら進めると安心です。