18

Web サイトをパスワードで保護したいのですが、.htpasswd ファイルと .htaccess ファイルを追加するとすぐにサーバー エラーが発生します。

内部サーバーエラー

サーバーで内部エラーまたは構成ミスが発生したため、リクエストを完了できませんでした。

サーバー管理者に連絡して、エラーが発生した時刻と、エラーの原因となった可能性のある操作を知らせてください。

このエラーの詳細については、サーバー エラー ログを参照してください。

私が使用しているコードは次のとおりです。

.htaccess

AuthType Basic  
AuthName "Top Secret for SongKick eyes only."  
AuthUserFile /webroot/.htpasswd  
require valid-user

.htpasswd

songkick:isS1rCTQE/p8E

私も試しましたAuthUserFile /.htpasswd(つまり、ファイルマネージャーにあるように見えるフォルダーの名前である「webroot」なしで)が、これも機能しません。

ちなみに、違いがある場合は、GoDaddyホスティングを使用しています。

4

4 に答える 4

36

によると、絶対パス(スラッシュで始まる)の場合は、AuthUserFileからの相対パスではなく、パスワードファイルへの完全なパスを指定する必要があります。DocumentRoot

AuthUserFileディレクティブは、ユーザーのリストとユーザー認証用のパスワードを含むテキストファイルの名前を設定します。File-pathは、ユーザーファイルへのパスです。絶対値でない場合は、ServerRootに対して相対的なものとして扱われます。

ServerRootではないことに注意してくださいDocumentRoot

DocumentRoot/var/wwwあり、パスワードファイルがである場合、次の/var/www/webroot/.htpasswdように言う必要があります

AuthUserFile /var/www/webroot/.htpasswd

.htaccessファイルにあります。


あなたは小さなPHPスクリプトで絶対パスについて知ることができます、例えば

<?php
echo "Absolute path: ", getcwd();

これを.htpasswdファイルを見つけたいディレクトリに置き、次のコマンドで呼び出します。http://www.example.com/path/to/test.php

完了したら、スクリプトを削除することを忘れないでください。


そうは言っても、パスワードファイルをでアクセス可能な場所に置くべきではありませんDocumentRoot。Webからアクセスできない場所、つまり/etc/apache2/htpasswd自分に合った場所に配置することをお勧めします。

于 2013-03-18T13:30:49.803 に答える
4

2つのことが思い浮かびます。

  1. .htpasswdWeb サーバーのユーザーは読み取り可能ですか?

  2. Apacheが意図したとおりに動作AllowOverride allできるように設定されているかどうか知っていますか?.htaccess

于 2013-03-18T12:00:41.257 に答える