• 締切済み

.htaccessを置くと500エラーが出ます

初めまして。 現在閲覧制限のあるサイトをribbon.toで作ろうとしている者なのですが、 .htaccess と.htpasswdの設定についてお伺いしたいところがあります。 現在.htaccess editorというオンライン上のソフトを使いファイルを 作成したのですが、ふたつのファイルをサーバー上のディレクトリに置くと、 500 internal server errorを返されてしまいます。 それぞれのファイルには以下のように記述しています。 (1).htaccess <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options -Indexes AuthUserFile AuthUserFile /home/freeuser/ユーザー名/123xxx(フォルダ名)/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow (2).htpasswd 設定する予定のユーザー名(半角英字4文字):暗号化されたパスワード(半角英数13文字) ユーザー名までのパス名は、ribbonの質問箱にあった 記述例を参考にしています。 123xxx以下のファイルの閲覧制限をかけたいと思い、 これら2つのファイルをHPビルダーのファイル転送機能を用いて 123xxxフォルダにテキスト転送モードでアップロードしているのですが、 アップロード自体はうまく行くものの、 いざ/123xxx/にアクセスしようとすると500エラーが返ってきます。 ちなみに、なぜか最初だけ一瞬うまく見られかけたのですが、 記述に誤りがあったため修正した途端にエラーが出るようになりました。。。 また使用しているwindowsのパソコンでは、<Files ~ "^(スラッシュの反対の記号).(htaccess|htpasswd)$"> 「スラッシュの反対の記号」の字が認識できず (こちらでも文字化けするようですね)、自動的に¥に 変換されてしまいます。 それも原因なのかな?と思いますが、ribbonさんの.htaccessの 記述例に書いてある通りの記述法に変更してみても (そちらは文字化けしません)同じ現象が起こります。 コマンドの下に改行を入れてみたり、いったん.txtとして アップロードしてから.htaccessファイルに変換してみたりと、 思いつく限りのことはやって見ているのですが、 結果はいつも同じ500エラーで、お手上げの状態です。。 もしも何がおかしいのかお分かりになる方、 或いはこう書き直してみたら?というのが お分かりになる方がいたら、教えて頂けると幸いです。

みんなの回答

回答No.3

質問者です。なぜかうまく登録IDでログインできなくなってしまったのでこちらから失礼します。 ご親切な回答を重ね重ねありがとうございました!おかげさまでとても勉強になりました。 結局、.htaccess作成をサポートしてくれる初心者向けのレンタルサーバーを利用することにしてしまったのですが、こちらで親切にご回答していただいたおかげで自作の.htaccessの何がおかしかったのかがよく分かり、たいへん参考になりました。 次回こそ自力での設置に挑戦してみたいと思います。役に立つご回答を本当にありがとうございました! (ポイントをつけさせて頂きたいのですが、なぜか自分のIDにログインできないので、その問題が解消するまでお時間をください。どうもたびたびすみません)

  • asciiz
  • ベストアンサー率70% (6644/9412)
回答No.2

ちゃんと認証ページが表示されたなら、 行末文字の問題は特になさそうですね。 さて、今度は.passwd ファイルの中身の方なんですが、1行ごとに、 「ユーザー名:crypt暗号化済みパスワード文字列」 を書かねばいけません。 これは、直接パスワードをファイルに書かない、というセキュリティ対策です。 例えば、ユーザー名/ID = testuser/testuser としたい時、例えば次のでいけると思います。 testuser:Qq4IatH31DgZc このcrypt暗号化文字列を得るためには、unixなどではコマンドラインツールがあるのですが、例えば次のページを利用してみてください。 http://webtools.jamadam.com/ 一番上の「Input String」に、希望文字列を入れると、一番下のcrypt(3) に、13文字の英数文字列が表示されます。 これが、cryptで暗号化した文字列なので、これを.htpasswd にコピペします。 最初の testuser の例が通れば、希望のID/Password のものも作れると思います。

  • asciiz
  • ベストアンサー率70% (6644/9412)
回答No.1

.htaccess をパートごとに解説してみます。 | <Files ~ "^\.(htaccess|htpasswd)$"> | deny from all | </Files> ".htaccess" もしくは ".htpasswd" というファイルにアクセスしようとした場合、エラーを返す。(内容を見せたくないため) バックスラッシュの代わりに円記号になるのは、正しいです。 実は同じ文字コードで、英語フォントではバックスラッシュ、日本語フォントでは円記号として表示されます。 | Options -Indexes インデックスアクセスを禁止。 「http://domain.com/123xxx/」というアクセスはエラーになり、 「http://domain.com/123xxx/home.html」「http://domain.com/123xxx/abc.txt」のように、きちんとファイル名を指定しないと表示できないようにしています。 | AuthUserFile AuthUserFile /home/freeuser/ユーザー名/123xxx(フォルダ名)/.htpasswd | AuthGroupFile /dev/null | AuthName "Please enter your ID and password" | AuthType Basic | require valid-user これはちょっと間違ってるようですね。 「AuthUserFile」は1回のみ、そして、サーバーOSからみたフォルダを指定しなければいけないので、次のようになります。 > AuthUserFile /home/freeuser/ユーザー名/htdocs/123xxx/.htpasswd にしてみてください。 | order deny,allow アクセス禁止→アクセス許可 の順に判定する。 (もしユーザーが allow 条件と deny 条件の両方に該当したとき、deny(拒否) 優先となって拒否される) 以上、一応 AuthUserFile の部分だけ直せば通りそうな気がします。 もう一つ気をつける点があるとすれば、行末記号の件があります。 Windowsだと、各行の終わりに CR と LF のコードが付くんですが、Unixの行末記号は LF のみなのが普通です。 FTPでの転送時に「アスキー転送モード」を選ぶと自動変換してくれるので、それで .htaccess や .htpasswd ファイルをアップロードしなおすと良いかもしれません。 (逆に、画像ファイル等をアスキー転送してしまうと、データが書き換えられてグチャグチャになってしまったりします。)

colette1873
質問者

お礼

さっそくのご親切な回答をどうもありがとうございます! 教えて頂いた通りやってみたところ、おかげさまで 500エラーの現象は解消され、認証画面が出てきてくれるようになりました。 ただ、今度はIDとPWをタイプしても「PWが違います」と 弾かれてしまうのですが、、、 まだ行末記号について教えて頂いた部分を直していないので、 それを直してみてうまく行くか試してみたいと思います。 また、調べているうちにribbonさんは私のような初心者向けの サーバではないようだということが分かりましたので、 もしそれでももうまく行かなければ別のサーバ利用も検討しようと 感じました。本当にご助言感謝しています!

関連するQ&A

  • .htaccessで500エラーが出ます

    はじめまして。 アクセス制限をかけたいディレクトリに.htaccessを作成し、 アップをすると500エラーでページが表示されません。 記述した内容は下記で ---------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> AuthUserFile /files/htaccess/pw/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow ---------- /files/htaccess/pw/.htpasswd のディレクトリに.htpasswdをアップしました。 500エラーの原因をいろいろ調べて、 転送モードはアスキー、文字コードはUTF-8、パーミッションは604、 最後の行に改行を入れるなど、 すべて実践してみたのですが、 一向にページが表示されません。 試しに.htaccessのファイルを削除するとページは表示されます。 自分ではもう全くお手上げ状態なので、 どなたか原因がわかる方がいらっしゃったら 教えていただければと思います。 よろしくお願いします。

  • 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可能となってはいるのですが…。

  • ベーシック認証で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を使用して、アクセス制御を行おうとしたのですが、アップロードしてアクセスしてみるとすべてのアクセスがブロックされてしまいました。 制御したい事柄は以下の通りです。 ファイルの「.htaccessと.htpasswdと.class.php」にはアクセスできないようにすること。 IPアドレス88.80.10.1は、アクセス拒否 ユーザーエージェントの「MorfeusとZmEu」の名前がつくものは、FORBIDDEN を返すというものです。 以下 .htaccess の記述内容 ----------------------------------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> <Files ~ "\.class\.php$"> deny from all </Files> Order allow,deny Deny from 88.80.10.1 RewriteEngine On RewriteOptions inherit RewriteCond %{HTTP_USER_AGENT} ^Morfeus RewriteRule ^.*$ - [F] RewriteCond %{HTTP_USER_AGENT} ^ZmEu RewriteRule ^.*$ - [F] ----------------------------------- 何卒よろしくお願いいたします。

  • htaccessでのベーシック認証ができない

    初心者です。 ホームページにパスワードをかけようとしているのですが、 設定したIDとパスワードを入力しても そのページに入れず困っています。 http://~~.com/a/ の部分にパスワードをつけたい状態で、 .htaccessには 下記の様に記述しました。 ------------------------------------- AuthUserFile /public_html/a/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> ------------------------------------- 又、.htpasswdの方は、無料提供サイトでパスワードを記号化しても、 そのまま記号化せずにパスワードを記述しておいても、 どちらでもはじかれてしまいます。 一応サーバーの方では、通常の設定でhtaccessでのベーシック認証は可能との記載がありました。 明日必要なので、すみませんがお力添え願います。

  • .htaccess/.htpasswdの設定

    プロバイダ側でサポート対象外になっているのは 承知の上ですので、実際運用されている方がいらしたら 改善方法を教えていただければと思います。 ぷららにてプライベートホームページサービスを利用中ですが WWWサーバにてID/PASSによるアクセス制限をかけたい ディレクトリがあります。(※公式上、CGIサーバは.htaccessを利用可能だが WWWサーバはサポート外) .htaccess/.htpasswdをそれぞれ用意したのですが いざアクセスをすると、認証画面より先へ進みません (passwdの方へ設定したユーザ名とパスワードを入れてもはねられる) ■.htaccessファイル #パスワード認証 AuthUserFile /home/ユーザ名/test/.htpasswd AuthGroupFile /dev/null AuthName "himitsu area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> ■.htpasswdファイル ユーザ名1:(暗号化されたパス1) ユーザ名2:(暗号化されたパス2) ■構成 [ユーザ名]   |___[test]          |__.htaccess          |__.htpasswd          |__index.html         

  • Basic 認証ができない

    Basic認証を行いたいのですが、「ユーザー」と「パスワード」を入れても認証を通過できません。 [.htaccess]ファイルには下記のように記述しました。 AuthUserFile /home/test/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> [.htpasswd]ファイルには下記のように記述しました。 test:KNBKgzgRhzAOk パスワードは下記URLで作成しました。 http://www.futomi.com/lecture/htaccess/htpasswd.html なにが問題なのでしょうか?

  • OSXでのユーザー認証 (htaccess httpd.conf) の設定

    現在 MacOSXServerで.htaccessでのユーザー認証を 試みているのですがうまくいきません。 認証したいディレクトリ  例:/users/xxx/sites/himitu/ に.htaccessと.htpasswdを作成して AuthUserFile /Users/xxx/Sites/himitu/.htpasswd AuthGroupFile /dev/null AuthName "Please enter username and password" AuthType Basic Options -Indexes require valid-user パスワードファイルには、htpasswd -c を使って 暗号化したパスワード作成もしました。 もちろんパーミッションも644です。 あと、/etc/httpd/users/xxx.confの <Directory "/Users/xxx/Sites/himitu/ Options Indexes MultiViews AllowOverride All Order allow,deny Allow from all </Directory> と変更しました。 アパッチの再起動もしました。 でそのディレクトリに行くと Internal Server Errorがでます。 以下はエラーログの内容です。 ログ内容:-------------------------------------- /Users/ams/Sites/zdown/.htaccess: Invalid command 'AuthUserFile', perhaps mis-spelled or defined by a module not included in the server configuration ----------------------------------------------- なにが問題なのでしょうか? 意味合いからいくとAuthUserFileわかんないよ~って言ってるとおもうのですが。 すいませんがこれで1日はまっています。よろしくお願いします。

    • 締切済み
    • Mac
  • htaccess

    htaccessについて教えてほしいです。 htaccessとhtpasswdをテキストで作り、アップロードし「.htaccess」「.htpasswd」と名前を変えました。 ○○に接続というユーザー名とパスワードを入れるパネルのようなものは表示されます。 ユーザー名とパスワードを入れても認証して中に入れません。 どこを直したら良いのか解りません。この場合、どこが違っているんでしょう?

    • ベストアンサー
    • CGI
  • .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とパスワード入れなくても「キャンセル」をクリックする事で見れます。 これはどうなっているのでしょうか? パスが間違っているのでしょうか?