Basic認証のフルパスの調べ方

お久しぶりです。ガジュマル育ててる人です。
今回はよくあるお問い合わせの話をしようと思います。

webサイトを引っ越しされた際に
Basic認証でユーザー名とパスワードを入力すると500エラーが出るようになったとのお問い合わせをいただくことがあります。

basicauth

その際によくあるのが、以前使用していたサーバーと
ドキュメントルートのパスが違うことが起因していることがあります。
今回はそちらに関して記載していこうと思います。

具体的にBasic認証のどの部分が変わるかというと
.htaccessファイル下記の赤字部分です。

AuthType Basic
AuthName "test-auth"
AuthUserFile "ここがかわります!!"
require valid-user

ドキュメントルートが変更されてしまうため、.htpasswdのフルパスが変更されてしまってエラーが起きるんですね。

それでは、変わってしまったフルパスを確認する方法を2つ紹介します。

 

①PHPが使用可能な場合

サーバーでPHPが使用可能な場合、.htpasswdと同じディレクトリに下記を記載したphpを設置します。

<?php
echo dirname(__FILE__);
?>

※今回は、fullpath.phpの名前で保存し、ファイルの権限を755にしてアクセスしました。

fullpath

.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認証に限らずドキュメントルートの変更忘れちゃってエラーが起こることは多々あるかと思いますが、根気よく一つずつ訂正してしていきましょう!