htaccess使って簡単にBASIC認証するの、たまにやるとやり方忘れがち。
- PHPが使える環境
- BASIC認証がサーバー管理画面以外からも可能(さくらサーバー等
であれば、
- 下記を記述したphpを用意(usernameとpasswordは任意のもの)
- FTPとかでphpを設置
- URLにアクセス
<?php
$filepath = __FILE__;
$dirname = dirname($filepath);
$htpasswd_path = $dirname . '/.htpasswd';
echo '<pre>AuthUserFile '.$htpasswd_path."\n";
echo 'AuthGroupFile /dev/null'."\n";
echo 'AuthName "TEST SITE"'."\n";
echo 'AuthType Basic'."\n";
echo ''."\n";
echo 'require valid-user'."\n</pre>";
?>
<?php
$username = 'testuser'; // 設定したいユーザー名
$password = '1234abcd'; // 設定したいパスワード
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
if ($hashed_password === false) {
echo "パスワードハッシュの生成に失敗しました。\n";
exit;
}
$htpasswd_line = $username . ':' . $hashed_password;
echo "# 以下を .htpasswd ファイルに記述してください:\n<br>";
echo "# ".$htpasswd_line . "\n";
?>
上記を実行すると↓が出力されるので、
.htaccessには
AuthUserFile~require valid-userまでコピペして
.htpasswdには
[自分で設定したuser名]以降をコピペして、両方のファイルをアップするとOKなはず。
AuthUserFile [ここがファイルパスになってる]/.htpasswd
AuthGroupFile /dev/null
AuthName "TEST SITE"
AuthType Basic
require valid-user
# 以下を .htpasswd ファイルに記述してください:
# testuser:パスワードが暗号化された長い文字列
