PHP 側で BASIC 認証を処理する時は、サーバーからPHPに BASIC 認証の値を渡して上げる必要があるけれど、Apache の config で下記を設定しないと引き渡されないというのにハマる。
設定方法
以下を httpd.conf に追記。
(許可している場合は) .htaccess にても設定可能。
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
テスト方法
Basic 認証で入力された ID や PW が表示されます。
<dl>
<dt>PHP_AUTH_USER</dt>
<dd><?php var_dump($_SERVER['PHP_AUTH_USER']); ?></dd>
<dt>PHP_AUTH_PW</dt>
<dd><?php var_dump($_SERVER['PHP_AUTH_PW']); ?></dd>
</dl>
うまく渡っていない時は、Null が返されてしまいます。
Apache をしばらく使っていないと、こういうのを忘れてしまいます。