ラボ > サーバ:.htaccess

.htaccessでBASIC認証

作成日:2018-01-24, 更新日:2018-08-03

.htaccessの記述

AuthUserfile /フルパス/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

※フルパスを調べる→「PHPで自分自身のPATH取得」の「自分自身の絶対PATH」のトコを元に調べる。

「AuthName」は英語なら何でもいいけど、複数個所でBASIC認証を別々にかけるなら重複しないようにする。

例えば下記のような感じの場合。
・「/zebra」と「/recatnap」で異なるID・PWを設定したい。

サンプルと挙動

BASIC認証の対象 OK例:.htaccessのAuthName NG例:.htaccessのAuthName ID/PW
/zebra Please enter your ID and password 1 Please enter your ID and password zebra / pwd1
/recatnap Please enter your ID and password 2 Please enter your ID and password recatnap / pwd2

OK例は「Please enter your ID and password」の後に「1」「2」をつけただけ。
見た目を考えると「Please enter your ID and password 1」をもう少し分かりやすい文言にしたほうがいい。

NG例は二つとも内容が同じ(Please enter your ID and password)。

内容 OKなAuthName NGなAuthName
1.「/zebra」にアクセス BASIC認証→「/zebra」が表示 BASIC認証→「/zebra」が表示
2.「/recatnap」にアクセス BASIC認証→「/recatnap」が表示 BASIC認証→「/recatnap」が表示
3.再度、「/zebra」にアクセス BASIC認証無しで「/zebra」が表示 再度、BASIC認証→「/zebra」が表示
4.再度、「/recatnap」にアクセス BASIC認証無しで「/recatnap」が表示 再度、BASIC認証→「/recatnap」が表示

▼諸々のサンプル
.htaccessの記述サンプル

.htpasswdの記述

ID:変換したパスワード

変換したパスワードってのが面倒だったので、ツールを作ってみた。「.htpasswdの中身の作成」。
ココで作った内容を「.htpasswd」にコピペする

BASIC認証情報をくっつけたURL

http://「BASIC認証のID」:「BASIC認証のPW」@example.com

例:BASIC認証の「ID / PW」が「hoge / pwd」のとき

http://hoge:pwd@example.com

関連項目

.htpasswdの中身の作成
PHPでBASIC認証
.htaccessの記述サンプル