• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccess と .htpasswd と etc/apache2 にある httpd.conf)

.htaccessと.htpasswdとetc/apache2でユーザー認証を設定する方法

このQ&Aのポイント
  • SUSE LinuxのApache2でユーザー認証=Basic認証を試みていますが、.htaccessを配置しても認証ボックスが表示されません。
  • httpd.confの<Directory "/--/--/">---</Directory>を編集しても、Apacheが動作しませんでした。
  • 詳しい設定方法や解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

じゃあワンステップづつ進めましょう まず最初の状態で 正常に.htmなどにアクセス出来ることを確認してから、、 第一段階: .htaccessの有効確認  .htaccess に test と記述します これでアクセスすると  ・1-A:Internal Server Errorとなりerror_logに"/.htaccess: Invalid command 'test'"と記録される    =>.htaccessは有効です第3段階に進む  ・1-B:何も変化無し   =>.htaccessが無効です 第2段階で設定やり直し1-Aの状態になるまで頑張ってください 第2段階 allowoverrideの設定  httpd.conf のalowoverrideを変更しますが  LANの中だけならAllで良いでしょう  問題はちゃんと該当する<Directory コンテナに記述しないと行けないのですが  例えば http://localhost/~tarou/ のようなユーザーディレクトリなら <Directory /home/*/public_html> AllowOverride All   ですし     http://localhost/ のようにドキュメントルートなら    httpd.confの DocumentRoot "/var/www/html" などと指定されたDirectoryで この場合なら <Directory "/var/www/html"> AllowOverride All   となります。   AllowOverride Allを記述してから httpdを再起動し   1-Aの状態になるまで何度でもやり直してください 第3段階: やっとbasic認証 .htaccessから testの文字を消し 次の6行を記述します AuthUserFile /home/hoge/.htpasswd AuthName " " AuthType Basic <Limit GET POST> require valid-user </Limit> ###AuthUserFile は勿論あなたのパスにあわせます ###AuthName の"" に入れる文字列は何でも良いのですが ###最低でも半角スペース1個は入れないとエラーになります ###また日本語の文字列を入れることはは取り合えずやめて置いてください ### 前述の6行を記述して Internal Server Error になる場合は文法的に問題がありますので   error_logを確認して .htaccess を書き直してください

ttaa100kkaa
質問者

お礼

umasikajiro様 ありがとうございました。SUSE はpasswd2 ということがわかりました。 default-server.conf に <Directory> AuthUserFile ---と書き足したら、できました。

関連するQ&A