#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。。。

参考:BASIC認証設定がうまくいかない時のチェックリスト

参考:htaccess Basic認証と500エラーの原因

参考:.htaccessでBasic認証の設定をする方法

参考:htaccessによるBASIC認証(パスワード認証)

basic認証を解除したいときは下記のコードを.htaccessに追加

Satisfy any
order allow,deny
allow from all

参考:サイト閲覧者を簡単に制限 – BASIC認証の設定と解除の方法

この記事が気に入ったらサポートをしてみませんか?