スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

.htaccessを使ったアクセス制限方法(Basic認証)

InternetExprolor等でBasic認証が施されているページにアクセスしようとすると、下図のダイアログが表示され、ユーザ名とパスワードが要求されます。
サンプル

基本認証画面

これは、仲間内にだけ公開したい掲示板サイトなど、特定の人間だけがアクセスを許可したい場合などに用います。Webアプリケーションを作成して、認証機能を持たせることもできますが、Apache上ではこの認証機能を簡単に実現することができます。

ドメイン丸ごとに認証機能を持たせるには、Apacheの

/etc/httpd/conf/httpd.conf


<Directory "/var/www/html">
</Directory>
定義の間に以下の記述を行いますが、ここでは特定のディレクトリ内だけ、Basci認証させるようにします。特定のディレクトリに対してだけBasic認証を行うには、「.htaccess」ファイルを利用します。「.htaccess」ファイルを設置した階層配下すべてにBasic認証機能が施されます。

基本認証適用

では、.htaccessファイルを作成してみましょう。テキストエディタで次のような形式で記述し、保存します。※先ほどもいいましたが、ドメイン丸ごとの場合には、httpd.confに記述します。

AuthType Basic
AuthName (表示されるメッセージなど)
AuthUserFile (ID・パスワード格納ファイルの所在)
require valid-user


実際の記述例は以下の通りです。
AuthType Basic
AuthName "Web RedBBS Admin Page"
AuthUserFile /etc/.httppassword
require valid-user

/etc/.httppasswordは実際にパスワードが記述される格納先です。これを「.htaccess」という名前で保存できたら、Webサーバへアップロードします。パスワードファイルをまだ作成していないので、このままではアクセスできません。
次にLinux端末を開いて以下のようにコマンドを入力します。

# htpasswd -c /etc/.httppassword guest


htpasswdコマンドがパスワードファイルを操作するコマンドです。-cオプションで新規にファイルを作成します。
ここでguestはユーザ名で、/etc/.httppasswordは先ほど記述したようにユーザ・パスワード格納先ファイルです。コマンドを実行すると、パスワードを要求してくるので入力します。
ここでは、パスワードhogeで設定したいと思います。パスワードが入力し終わるとパスワードファイルが作成されます。
なお、新しいユーザを追記する場合は-cのオプション無しでコマンドを実行してください。
設定が完了したら、Apacheを再起動させます。

/etc/rc.d/init.d/httpd restart


では、実際にサンプルにアクセスしてみましょう。
http://redbbs.orz.hm/sample/basic/

基本認証画面

パスワード要求の画面が表示されるので、先ほどのパスワードを入力します。

動作確認画面

この画面が表示されればOKです。

なお、.htaccessファイルを設置しても認証がうまくいかない場合は、httpd.confの設定を確認してみてください。AllowOverride指定子を最低限AuthConfigになっている必要があります。

tag : .htaccess AllowOverride htpasswd Basic認証

このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

プロフィール

白鯖

Author:白鯖
安い寄せ集めの部品で構築し、CentOS5をインストールしました。主に、Webサーバ、アプリケーションサーバとして運用中。ハードの知識はあまり無いプログラマですが、全部自前で作るのは、手間はかかるけど、レン鯖より面白いです。

ハードウェア構成

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
Max TDP控え目なCPU
安くて静音なクーラー
検索フォーム
ユーザータグ
RSSフィード
はてな
スポンサード リンク
おすすめ書籍
twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。