htaccessを使ったパスワード制限付きページの作成

htaccessを使えばパスワード付きのページを簡単に作成できます。
(Basic認証とも言います)
実際はページ(htmlファイル)に対して個別に設定するのではなく、
ディレクトリ(フォルダ)内全体にかけますので、設定したディレクトリ内すべてのファイルに対して有効になります。

特定の人だけに見せたい場合や会員専用画面、管理画面などに利用できます。

サンプルデモ⇒
ユーザID:admin
パスワード:1397

その他PHPのsession()を使ったログイン、ログアウト機能なども可能ですが、
いろいろ面倒だったりします。htaccessを使えば簡単に実現できます。

アクセス制限をかけたいディレクトリ(フォルダ)
htaccessファイルとパスワードを記述したhtpasswdファイルを置くだけです。

ファイル一式をこちらよりダウンロードしてください。
Basic認証セット

またhtaccessファイルにフルパス(サーバ上の絶対パス)を記述する必要があるため、
フルパス取得用のPHPファイルも一緒に入ってます。

zipファイルを解凍すると以下の3つのファイルがあります。

※htaccessファイル、htpasswdファイルとも特殊なファイルでファイル名がなく、拡張子だけのファイルになります。中に書いてるのは単なるテキストですので、メモ帳やエディタなどで開けます。

1、htaccessファイル・・・コアとなるファイル。フルパスを記述します。
その他の部分はそのままにしてください。

2、htpasswdファイル・・・・ユーザIDと暗号化したパスワードを記述するファイル

3、path.php・・・・フルパスを取得するためのファイル。

手順

1、とりあえずこの3つのファイルをアクセス制限をかけたい場所(ディレクトリ)にアップします。

2、ブラウザでpath.phpを表示させてください。
そこに表示されてるのがフルパスです。それをすべてコピーしておきます。

3、htaccessファイルをTeraPadなどのエディタソフトのアイコンにドラッグして開きます。
特殊なファイル名なのでダブルクリックしても開きませんのでご注意を。

htaccessファイルには以下の記述があります。

 ———————————————————-
AuthUserFile /home/public_html/school/test/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic

require valid-user
———————————————————-

変更するのはAuthUserFileとAuthNameのところだけです。
AuthUserFile・・・・パスワードを記述したファイルのフルパスを記述。
先ほどpath.phpで取得し、コピーした文字列を貼り付け。
path.php部分を消して、.htpasswdに変更。
この部分は必ず書き換えてください。
AuthName・・・ID、パスワード入力画面で表示されるもの。日本語はIE以外で文字化けします。
このままでもOKです。

4、パスワードを暗号化したものを取得する。
ページにログインするためのユーザID、パスワードを決めます。※半角英数字
※ちなみにダウンロードしたhtpasswdファイルにはあらかじめ以下の内容を暗号化したものが記述してあります。
ユーザID:admin
パスワード:1397

それで以下のページで暗号化された文字列を取得してください。

暗号化パスワード生成ツール
http://www.shtml.jp/htaccess/make_htpasswd.html

5、htpasswdファイルをTeraPad等で開き、生成した文字列を記述。
※元々書いてあるものは削除してください。

変更したhtaccessファイルとhtpasswdファイルを上書きアップロードで完了。

ブラウザで再びpath.phpを表示させてみてください。
ユーザIDとパスワードの入力を求められるはずです。

設定したID、パスワードを入力して、ちゃんとページが表示されるか確認して、
OKならすべて完了です。
htmlファイルなどを同じ階層にアップすればOK。どのファイルにアクセスしても自動的に認証が求められます。※一度認証すればブラウザを閉じるまで有効。

記事の内容が近いもの:

  1. htaccessファイルを使ったリダイレクト(他のURLへ強制的に飛ばす)

カテゴリー: htaccess   パーマリンク

コメントは受け付けていません。