エックスサーバで、MTの管理画面にベーシック認証かけようとして、ちょっと躓いたのでメモ。
基本的に作り方は他のサーバと一緒。
.htaccessと.htpasswdつくってサーバにあげるだけ。
.htaccess
<Files mt.cgi> AuthUserFile /フルパス/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow </Files>
MTの管理画面入口はデフォ名がmt.cgiなので、1行めで指定。
2行目に.htpasswdの場所をフルパスで記述。
しかし何度やっても上手く行かず、パスワードの暗号化失敗してるのかと思って、他のサーバで試したけど、
他のサーバなら上手く行く。
ということでフルパスが違うのかと調べたら、違ってた。
エックスサーバのフルパスは、どうやらhome/ユーザ名/で始まるらしい。
今回、Winscpで右クリック>フルパスをクリップボードにコピー でフルパス取得してたんだけど、
これだと一番上がユーザ名になっちゃってて、それで.htpasswdを見つけられなかったらしい。
おまけ
フルパスの調べ方
<?php echo __FILE__; ?>
↑をテキストエディタに書いて、適当な名前.phpで保存。
調べたいディレクトリにほりこんでブラウザからアクセスしたら、フルパス取得してくれます。
おまけ2
.htpasswdの書き方
ID:PW
の形で書くだけ。
ただし、PWは暗号化するべし。
→→暗号化までしてくれる便利なジェネレータはこちら。
たまに使わせて頂いています。