.htaccessでベーシック認証の設定がうまくいかなかった件


最終更新日:2020.11.14
Pocket

非WordPressのサイトで、.htaccessでbasic認証掛けようと思ったらうまくいかなかったのでメモしておきます。
同じように苦しんでいる人の参考になれば…

 

フルパスがちがった

.htaccessファイルに、.htpasswdまでのフルパス書きますよね。

AuthUserFile /home/〇〇〇/.htpasswd

こんな感じで。

これが違ってました!

解決法

FTPクライアントに出てるリモートサイトのアドレスじゃないんですよね。
分からなくなったら、.htpasswdを置いてあるディレクトリに、

<?php
  echo __FILE__;
?>

こうやって書いたphpファイルを置いて、そのphpにブラウザでアクセスします。
その階層までのパスが表示されます!!

ちなみにその後、

<?php echo file_exists('/home/〇〇〇/.htpasswd') ? 'OK' : 'NG';

って書いたphpファイルを同じ階層にアップすると、本当にその階層にそのファイルがあるか確認できるのでオススメです

 

パスワードを暗号化してなかった

無事に認証がかかったのに、何度ユーザー名とパスワードを入れても認証が通らない…という問題に直面しました。

パスワードは暗号化しましょう

 

.htpasswdファイルには、

user:password

この形式でユーザー名:パスワードを書くんですが、
仮に上記のアイパスそのままでアップしても、ユーザー名「user」パスワード「password」で通過できません。

サーバーにもよるようなのですがさくらサーバーではここで引っかかりました。
なのでパスワードを暗号化します。

http://www.cityjp.com/cript/crpt.cgi

上記のサイトで「user」「password」を入力すると、暗号化されたパスワードが発行されます!
こっちの記述を.htpasswdに入力しましょう!

 

まとめ

インターネット初心者が露呈してしまいました
Apacheとか全然わかっていないのでまだまだ鍛錬が必要…

 

 

参考サイト様

フルパスの調べ方 https://qiita.com/BEMU/items/7dc3fee4d5cdaf5c4fa8
BASIC認証設定がうまくいかない時のチェックリスト https://kantaro-cgi.com/blog/web-server/cant_htpasswd.html

 

 

Pocket