htaccessで認証をかける方法とは?詳しい設定方法を教えてください

このQ&Aのポイント
  • htaccessを使用して認証をかける方法を教えてください。私は詳しくないので、設定方法を知りません。
  • 私は.htaccessを使用して認証をかけたいですが、試してみても認証エラーが発生します。
  • AuthUserFileとAuthNameを正しく設定しましたが、.htaccessを置いている場所が適切か確認してください。
回答を見る
  • ベストアンサー

htaccessについて

htaccessで認証をかけたいのですが、私の思う限り(といっても知識が乏しいので限られていますが・・・)やってみても認証エラーが起こってしまいます。 下に.htaccessの中身を書きますので、間違っている点等ありましたら御指摘下さい。 AuthUserFile /home/sites/home/web/.passwd AuthGroupFile /dev/null AuthName "Please Enter Your ID and PASSWORD" AuthType Basic <Limit POST GET PUT> require user macky0225 </Limit> この.htaccessをおいている場所は/home/sites/home/web/privateです。 .passwdはhtpasswdで作成しましたので間違いないと思います。 また、過去ログなどで参考になりそうなモノがあれば教えて下さい。ヒット数が多くて捜しきれませんでした・・・

  • HTML
  • 回答数4
  • ありがとう数2

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

  • ベストアンサー
  • Lio
  • ベストアンサー率44% (13/29)
回答No.3

補足見ましたパスワードファイル指定か、パスワードファイル自体が間違っている可能性大ですね。 Linuxコマンドは初心者です(一様サーバー管理者なんですけど(笑)) パスワードファイルの正しい作り方を紹介します。 pwdというのは、Telnetでログインして、現在のパスを調べるためのコマンドです。 .htpasswdを作るには、パスワードファイルを保存したいところに 移動して(cd /home/sites/home/web)そこで $ htpasswd -c .htpasswd macky0225 と入力します。(新規の場合です。追加の時は、-cを消してください。又、$は入力しないでください。) そうすると、 「Adding password for macky0225. New password:」 という表示が出てきますので、パスワードを入力してください。 もう一度要求されますので、入力してください。 すると、.htpasswdが作成されます。crypt関数で暗号化したのと同じですので、おそらく動くと思います。 その後 $ ls -la と入力してください すると一覧が表示されますので、その中に[.htpasswd]があることを確認してください。 あればpwdコマンドで現在のパスを調べ、表示されたパスを [.htaccess]の「AuthUserFile」に入れてください。 これで動くと思いますが・・・・

その他の回答 (3)

  • Lio
  • ベストアンサー率44% (13/29)
回答No.4

NO.3の一部訂正です 下から二行目 [.htaccess]の「AuthUserFile」に入れてください。 ですが、 pwdで調べると最後がスラッシュで終わりません。(/home/sites/home/web)が .htaccessに記述するときは /home/sites/home/web/.htpasswd という形式で入れてください。

macky0225
質問者

お礼

お返事が遅くなり申し訳ないです。 お教え頂いたとおり再度設定したところ動きました!有難うございますm(__)m 何が原因だったのか判りかねますがパスワードファイルにもんだいがあったのか?って考えています。とにかく、いろいろ御教授頂き有難う御座いました!

  • Lio
  • ベストアンサー率44% (13/29)
回答No.2

補足解答です。 .htaccessはアスキーモードで転送します。 パーミッションは644で大丈夫でしょう。 >うまくいきませんでした どのような表示が出ましたか?500エラーとか、401エラーとか。 500の場合は、記述が間違っています。 401の場合はパスワードファイルが間違っているでしょう。 あと、AuthUserFile /home/sites/home/web/.passwd の部分ですが、やはり AuthUserFile /home/sites/home/web/.htpasswd としてください。私は↑で動作しましたよ。 よって、.htaccessの方は間違っていないと思います。(パスワードファイルまでのパス指定の間違いは除く) 再確認してみてください。

macky0225
質問者

補足

補足有難う御座います。エラーログですが、私の利用しているレンタルサーバーではご指摘のようなエラーメッセージが出ません。かわりに「要求されたドキュメントへのアクセスに必要な認証(パスワードなど)を確認できませんでした。パスワードが違っていたか、ご使用のブラウザが必要な認証を提供できなかったことが考えられます。」と出ます。.htaccessは使えるとのことなので、どこかしら設定が間違っているのでしょうね・・・(T_T) 絶対パスの調べ方はTelnet接続して認証をかけたいフォルダ及びパスワードファイルのあるフォルダまで移動し、pwdと叩けばいいんですよね?なんか基本的(初歩的)なコトが間違っている気がしてやまないので・・・ 御迷惑をお掛けしますが御教授下さいm(__)m

  • Lio
  • ベストアンサー率44% (13/29)
回答No.1

AuthUserFile /home/sites/home/web/.passwd AuthName "Please Enter Your ID and PASSWORD" AuthType Basic require user macky0225 ではいかがですか? 見た感じでは、privateにアクセスするのは、macky0225のIDを使った方だけの 認証を行いたいと感じさせられましたので、 userでmacky0225を定義で正しいです。(すべてのユーザーの場合はvalid-user です。) あと、 <Limit>を使用せずに、一発requireで大丈夫だと思いますよ。

macky0225
質問者

補足

早速の回答ありがとうございます。 Lioサンの仰るとおりの設定をしてみたのですがうまくいきませんでした(valid-userも試してみました)・・・ アップデート方法(アスキーorバイナリ)や属性はどう設定すればいいでしょうか?我侭ですが御教え頂ければ幸いです。

関連するQ&A

  • htaccessがうまくいきません

    htaccessで認証画面が開き、設定したパスワード、アカウントを入れても認証画面が繰り返し出てきます。どうしたらよいでしょうか? AuthUserFile /Library/WebServer/Documents/phpMyAdmin/.htpasswd AuthGroupFile /dev/null AuthName phpMyAdmin AuthType Basic <Limit GET POST> require valid-user </Limit> どこかおかしいですか?

  • htaccessの認証が出来ません…

    htaccessによるBasic認証を試みてるのですが、何度IDとPASSを打っても同じ認証画面が出てきてしまいます…。 .htaccessには以下のように記述してあります。 AuthUserFile "フルパス.htpasswd" AuthGroupFile "/dev/null" AuthName "Input ID and Password." AuthType Basic <Limit GET POST PUT> require valid-user </Limit> <Files ~ "^.(htpasswd|htaccess)$"> Order deny,allow deny from all </Files> .htpasswdには ID:暗号化したパスワード と記述してあります。 フルパスの指定に間違いがないとしたら、何か他に認証に 失敗する原因として挙げられるものがありますでしょうか? 『0ad』というところでレンタルサーバーしてまして、htaccess可能となってはいるのですが…。

  • 基本的なことかもしれませんが・・・htaccessとhttpd.conf

    CGI初心者です。 /home/sites/home/web/privateにアクセス制限をかけようと、.htaccessをおきました。IDとパスワードのファイルはpassword.txtです。 htpasswdについて、過去ログを調べて見に行ったりもしましたが、何分チンプンカンプン・・・もっと易しい紹介サイトってないですか? とにかく、.htaccessで認証画面を出すことには成功しましたが、いくらやっても認証されないんです・・・(T_T) 中身はこんなんです。 AuthUserFile /home/sites/home/web/honda-roso.or.jp/maintenance/edit/password.txt AuthGroupFile /dev/null AuthName "Please enter username and password" AuthType Basic <Limit POST GET PUT> require valid-user </Limit> <Files .htaccess> order deny,allow deny from all </Files> おかしいところなどあったら教えてください。 あと、httpd.confって言葉が過去ログにありましたがこれってなんですか? 単純なことかもしれませんが、なるべく易しく御教授下さいm(__)m

    • ベストアンサー
    • CGI
  • .htaccessによるアクセス制限

    FreeBSD(4.2R)初心者です。(Apache 1.3.14) .htaccessファイルによるアクセス制限をしたいのですが、 うまくいきません。 /usr/home/user1/public_html/privateに制限をかけようと思い、 このディレクトリに、 htpasswdで作成したパスワードファイル(.htpasswd)と、 以下のような.htaccessファイルを置きました。 AuthUserFile /usr/home/user1/public_html/private/.htpasswd AuthGroupFile /dev/null AuthName "ByPassword" AuthType Basic <Limit GET POST> require valid-user </Limit> でも、ダイアログが出ずに素通りしてしまいます。 どなたか、やり方を教えてください。

  • .htaccessによるBASIC認証について

    仲間だけに閲覧をしてもらうためのページを作成しています。 色々なサイトを参考にして、.htaccessで作ってみたのですが、設定したパスワードを入力しても、閲覧ができませんでした。 .htaccessは、 AuthUserFile ~FTPアカウント名/作成したディレクトリ名/.htpasswd AuthGroupFile /dev/null AuthName "任意の言葉" Authtype Basic <Limit POST GET PUT> require valid-user </Limit> .htpasswdは、 ユーザー名:パスワード(某サイトを使って暗号化したもの) と作成しました。 プロバイダはhi-hoです。どうしたら、うまく完成するのか、教えてください。 ホームページ作成初心者ですので、説明の文章におかしいところがあるかもしれませんが、お許しください。 どうぞ、よろしくお願いします。

  • ベーシック認証で404エラー

    .htaccessを使用してベーシック認証をかけたいのですが、404エラーが出てしまいます。(.htpasswdもちゃんとアップロードしています) サーバ会社に聞いてみたところ .htaccessは利用できる フルパスは正しい(サーバ会社が教えてくれました) しかし、なぜ404エラーが出るかは分からない、といわれてしまって困っています。 恐れ入りますが、ご教授いただけると大変助かります! .htaccessの内容は下記になります。 ------------------------------------------ AuthUserFile /home/フルパス/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic AuthPAM_Enabled off <Limit POST GET PUT> require valid-user </Limit> <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> ------------------------------------------ よろしくお願いいたします。

  • .htaccessで階層より上まで制限が掛かるのはなぜ?

    ホームページ内の、あるディレクトリにパスワード制限を掛けています。 .htaccessに ----- AuthUserFile /home/sites/ディレクトリへのパス AuthGroupFile /dev/null AuthName "認証" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> ----- と記述し、htpasswdにパスワードを記述しています。 その該当ページに入るときは、ちゃんと認証の小窓が出てきて、 IDとパスワードを入力しないと見れないようになっていますが、 問題は階層上のTOPページにアクセスしても、その小窓が出てくるようになった事です。 他の同階層のディレクトリにアクセスしても小窓は出ません。 小窓自体はIDとパスワード入れなくても「キャンセル」をクリックする事で見れます。 これはどうなっているのでしょうか? パスが間違っているのでしょうか?

  • BASIC認証で確認ダイアログが表示されない

    あるディレクトリにBASIC認証をかけようと思っているのですが、 ダイアログが表示されずに困っています。 [.htaccess] AuthType Basic AuthName "Login ID and Password" AuthUserFile /home/アカウント/www/test/.htpasswd AuthGroupFile /dev/null require valid-user [.htpasswd] test:暗号化されたパスワード ページを開くと返ってくるのが404Errorです。 (「このプログラムではこの Web ページを表示できません」と表示されます) .htpasswdまでのパスは合っていると思います。 なぜダイアログが出てくれないのでしょうか・・・?

  • .htaccessでパスワード認証ができない

    仮のアドレス http://192.168.1.16/gazoufolder/ をパスワード認証をしたいと思います ですがIDとパスワードを入れてもできません できなかった例をあげます 私はhttp://192.168.1.16/htm/に .htaccessを置き 下のはコードです AuthType Basic AuthUserFile /htm/.htpasswd AuthGroupFile /dev/null AuthName "Enter password" Require valid-user (中身) .htpasswdはhtmのフォルダの中に入れています (もちろんパスワードは暗号化して入れていますID:passのように) .htaccessはもちろんパスワード制御をしたいのでgazoufolderに入れています それでhttp://192.168.1.16/htm/test.htmlにアクセスすると 認証画面はでるんですが IDとパスワードを入れてもずっと認証画面でIDとパスワードを聞かれたままです パスワードとIDは間違っていませんし どこが悪いのでしょうか? 自分的には AuthUserFile /htm/.htpasswd が怪しいと思うんですが 調べてみても /home/public_html/などややこしいのばっかりで どうしていいかわかりません http://192.168.1.16/でのパスはどうすれば良いのでしょうどなたか教え てください ちなみにOSはMacOSXです Apacheです

  • .htaccessについて

    こんにちは。 現在自分の部署のウェブサーバーを作れという指令のもと、初心者ながらRedhat8を使用して苦闘を続けています。 まずはサクサクとhttpd.confをいじってウェブサイトを見れるまでは簡単にできました。次に部署の人間だけに見れるようと .htaccess を使って制限をかけようと思いました。 テストなので、.htaccessと.htpasswdを同じフォルダに作りました。ID&Passも登録して、さあサイトにアクセス!と認証画面がでたのはいいのですが、先ほど登録したID&PASSを何回いれても先に進めません。おまけにあきらめてキャンセルを押しても6回も7回も押さなくてはキャンセルできません。 いったい何が悪いのでしょうか?やったことは以下の通りです。(すべてrootで) (1)index.htmlの置いてある /home/www/html の中に.htaccessを作成 -------------------------------------- AuthUserFile /home/www/html/.htpasswd AuthGroupFile /dev/null AuthName "Welcome" AuthType Basic Options All <Limit GET> require valid-user </Limit> ----------------------------------------- (2)同フォルダ内に htpasswdコマンドで.htpasswdを作成。ID&Passを登録(test:test) 以上なのですが、何か足りない部分があるのでしょうか?httpd.confをさらにいじる必要があるのか、test:testが認証されないのは何か理由があるのか? 何でもけっこうですので、思い当たるフシがあればご教授ください。よろしくお願いします。