htaccessでBASIC認証する時に毎回確認するやつのメモ

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:パスワードが暗号化された長い文字列

この記事を書いた人

CORUN

「たぶん、できるんじゃないかな。」
それがコンセプトであり、なりたい自分の一人。
Webのお仕事やっております。