#22 basic認証でログインできなくなった【ぴよぴよコーダーの開発日記】
なんだか最近basic認証作れなくなってしまった。。簡単なはずなのにね。.htaccess こんな感じ
AuthUserFile "/フルパス/.htpasswd"
AuthGroupFile /dev/null
AuthName "Basic authentication."
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
意味は、AuthUserFile(パスワードファイル名)、AuthGroupFile(アクセスできるユーザーをグループ分けする場合に指定)、AuthName(認証ウィンドウの表示)、Require(全ユーザーにBasic認証をかける)、AuthType(BASICを指定すると基本認証)
フルパス調べるのに、test.phpでこんな感じで調べる
<?php echo __FILE__; ?>
フルパスが合っているかを調べるのにこんな感じでOKがでたのを確認
<?php echo file_exists('/(ここにフルパス)/.htpasswd') ? 'OK' : 'NG'; ?>
.htpasswdは生成ツールで作ったものを貼り付ける。
動かしてみると、basic認証のポップアップは出るけど、ログインできない。。
そこで試したことが下記
・パスワードのハッシュ値を強化(長いパスワードにする)
・UTF-8 BOMなし、改行コードをLFにする
・.htaccess、.htpasswdの末尾を改行する
・.htaccess、.htpasswdのパーミッションを644にする
・.htaccess、.htpasswdの入っているディレクトリを705にする
・AuthGroupFile /dev/null の1行を消す
全部試したけど、できんかった。。サーバと相性悪すぎなんだな。
後日談:すごい恥ずかしい話ですが、ポップアップのパスワードには、暗号化する前の平文を入れるはずなのに、暗号化後の.htpasswdの文字列コピってたのが原因でした。あまりにも基本的過ぎてどこにも載っていないよな。こんなことorz。。。
参考:htaccessによるBASIC認証(パスワード認証)
basic認証を解除したいときは下記のコードを.htaccessに追加
Satisfy any
order allow,deny
allow from all
この記事が気に入ったらサポートをしてみませんか?