@tarou1229

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

(至急)Basic認証にて正しいIDとパスワードを入力するも500エラーになる事象を解決したい。

解決したいこと

Basic認証にて正しいIDとパスワードを入力するも500エラーになる事象を解決したい。

背景

Xserverを用いてLP(index.html)をステージングし、そちらにBasic認証をかけようとしています。
Xserverのアカウントが共有いただけず、手動で認証を設定しないといけない状況です。

発生している問題・エラー


500
Internal Server Error
アクセスしようとしたページは表示できませんでした。

該当するソースコード

.htaccess
AuthUserFile "/home/xs~/作成したドメイン.com/htpasswd/.htpasswd"
AuthName "Member Site"
AuthType BASIC
require valid-user

該当するソースコード

.htpasswd
指定したID:指定したパスワードを以下サイトにて暗号化したもののコピー

自分で試したこと

①サーバー接続時にディレクトリが作成されていなかったので、以下のように作成しました。(フォルダ名は偽名とさせてください)

/home/xs~/作成したドメイン.com/htpasswd/A/B
/home/xs~/作成したドメイン.com/public_html/A/B

②表示させたいindex.htmlを「public_html」に格納しても403エラーとなったので、 「home」と同階層に格納することで表示自体はできました。

③作成した「.htaccess」を同じく「home」と同階層に配置し、「.htpasswd」を「htpasswd」内に格納し、AuthUserFile のパスを上記コードのようにしました。

調べてみるも記載したパスに問題があるということがほとんどということですが、
上記の通りパスは間違っていないと認識しております。(そもそもこちらが誤りでしたらご指摘ください。)

また、パーミッションもファイルは644、フォルダは755にしています。

ID、パスワードはコピペしているため入力ミスはないかと思いますが、上記コードの誤り、格納するディレクトリに間違いがあるなど、何か知見はございますでしょうか。

経験が浅く恐れ入りますがご回答の程よろしくお願いします。

0 likes

2Answer

500 Internal Server Errorということは.htaccessの構文ミスの可能性が高いです。

.htaccessの文字コード・改行コード等を確認してみてください。

1Like

Comments

  1. @tarou1229

    Questioner

    ご連絡ありがとうございます。
    頂いた記事参照しました。
    文字コードはファイルマネージャーで確認しUTF-8(BOMなし)であり、改行コードはVS Codeで確認し、LFでした。

    併せて全角スペースが無いか確認し、記事に記載ありました最後の行に改行を入れることも試しましたが、依然500エラーとなりました、、

    もし、他に確認すべき点ございましたらご教示いただけますと幸いです。

500でエラーになっているなら、Apacheのエラーログが出てないですかね?

1Like

Comments

  1. @tarou1229

    Questioner

    ご連絡ありがとうございます。
    恐れ入ります。。
    Apacheに関しても全く無知で調べたところ、サーバーパネルやログファイルにて確認できるとのことですが、サーバーパネルにはXserverのアカウントがなく、ログファイルも特段作成していない状況です、、

    この状態でも確認方法がございましたらご教示いただけますと幸いです。

  2. Xserverのアカウントが共有いただけず、手動で認証を設定しないといけない状況です。

    サーバーパネルにログインできないということですかね?

  3. @tarou1229

    Questioner

    はい、、
    本来であればサーバーパネルで確認したり、そちらからBasic認証の操作などできれば良いのですが、アカウントやパスワードを共有いただけない状況でして、、

  4. この状態でも確認方法がございましたらご教示いただけますと幸いです。

    /home/xs~/logsのようなlogsディレクトリがhomeの配下にないですかね?

    あまりお役に立てそうにないので、一応
    .htaccessのAuthUserFileには絶対パスの指定が必要なので、
    下記にAIから聞いた、絶対パス確認方法(未検証)を記載しておきます。


    PHPスクリプト: もしPHPが実行できる環境なら、一時的に以下の内容のPHPファイル (例: path_check.php) を作成・アップロードし、ブラウザからアクセスして絶対パスを確認できます。

    path_check.php
    <?php
      echo 'Document Root: ' . $_SERVER['DOCUMENT_ROOT'] . '<br>';
      echo 'Full Path to this file: ' . __FILE__;
    ?>
    

    これを利用して .htpasswd を置いた場所の絶対パスを割り出します。(確認後は必ずこのPHPファイルを削除してください。)

Your answer might help someone💌