お久しぶりです。ガジュマル育ててる人です。
今回はよくあるお問い合わせの話をしようと思います。
webサイトを引っ越しされた際に
Basic認証でユーザー名とパスワードを入力すると500エラーが出るようになったとのお問い合わせをいただくことがあります。
その際によくあるのが、以前使用していたサーバーと
ドキュメントルートのパスが違うことが起因していることがあります。
今回はそちらに関して記載していこうと思います。
具体的にBasic認証のどの部分が変わるかというと
.htaccessファイル下記の赤字部分です。
AuthType Basic
AuthName "test-auth"
AuthUserFile "ここがかわります!!"
require valid-user
ドキュメントルートが変更されてしまうため、.htpasswdのフルパスが変更されてしまってエラーが起きるんですね。
それでは、変わってしまったフルパスを確認する方法を2つ紹介します。
①PHPが使用可能な場合
サーバーでPHPが使用可能な場合、.htpasswdと同じディレクトリに下記を記載したphpを設置します。
<?php
echo dirname(__FILE__);
?>
※今回は、fullpath.phpの名前で保存し、ファイルの権限を755にしてアクセスしました。
.htpasswdを設置するディレクトリのパスが
/var/www/vhosts/example.com/httpdocsなので、下記のように/.htpasswdを最後に付け加えて.htaccessを修正してください
AuthType Basic
AuthName "test-auth"
AuthUserFile /var/www/vhosts/example.com/httpdocs/.htpasswd
require valid-user
②SSHできる場合(※UNIX系)
サーバーへSSHできる場合は.htpasswdのおいてあるディレクトリに移動したのちに、pwdコマンドで検索できます!
[user@example.com ]# ls -a
. .. filepath.php .htaccess .htpasswd index.html
[user@example.com ]# pwd
/var/www/vhosts/example.com/httpdocs
上記の場合も.htpasswdを設置するディレクトリのパスが
/var/www/vhosts/example.com/httpdocsなので、下記のように/.htpasswdを最後に付け加えて.htaccessを修正してください
AuthType Basic
AuthName "test-auth"
AuthUserFile /var/www/vhosts/example.com/httpdocs/.htpasswd
require valid-user
ウェブサイトを引っ越しの際、Basic認証に限らずドキュメントルートの変更忘れちゃってエラーが起こることは多々あるかと思いますが、根気よく一つずつ訂正してしていきましょう!