特定のページの認証方法に問題が発生しています

このQ&Aのポイント
  • 特定のページに認証をかける方法に問題が発生しています。
  • 認証の設定を行ったにもかかわらず、該当ページには認証がかからずにアクセスできます。
  • 使用しているサーバはロリポップのエコノミープランです。
回答を見る
  • ベストアンサー

特定のページだけ認証をかけたい

https://okwave.jp/qa/q9629337.html の続き 下記のように認証をかけたのですが、該当ページにアクセスしてもそのまま開きます。 <Files html/charge.html> AuthUserFile /var/www/vhosts/ドメイン名/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user </Files> しかし、アクセスすると認証の画面が出ません。 そのままページが開きます。 どこに問題があるのでしょうか? サーバはロリポップのエコノミープランです。

  • PHP
  • 回答数3
  • ありがとう数3

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

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

あっと、ごめんなさい。 「※CGI もしくは SSI が正しく動作していません。」 というエラーメッセージからみて、認証の問題ではないと早合点してしまいました。 実際にlolipopのサーバーで実験してみたところ .htaccessの AuthUserFile ~ で指定する.htpasswdファイルの フルパスを間違えていると、 認証ダイアログがでた後に 「 ※CGI もしくは SSI が正しく動作していません。」 が出ました。 2回目移行は 認証ダイヤログがでないで、いきなりこのメッセージになります。 (つまり、同じ現象ですね) なお、このフルパスを私の契約サーバーの環境に合わせて正しく書き換えると、 きちんと認証後に、ページの表示をしてくれました。 #lolipopでCGIやSSIの問題ではないときも、500 ERROR時に固定で #「※CGI もしくは SSI が正しく動作していません。」 #ってエラーがでる仕様なのは、ちょっとどうかと思いますが、それはそれとして… つまり、.htaccessの AuthUserFile ~ で記載した フルパスを間違えているか、 サーバー上に .htpasswd が存在していないかのどちからでしょう。 なお、.htpasswdは存在しているが、ファイルの内容として間違えているとき (たとえば ユーザーID{コロン}のあとに 誤って平文(生の)でパスワードを書いた時は) 「※CGI もしくは SSI が正しく動作していません。」 にはならずに、何度も認証のダイアログが出てきました。 よって、、.htapsswdファイルの内容の問題は残っているとしても、 とりあえずは、.htaccessの.htpasswdファイルのフルパスの 指定ミスを解決する必要があるでしょう。

webpageyou123
質問者

お礼

ありがとうございます。出来ました。

その他の回答 (2)

回答No.2

> ※CGI もしくは SSI が正しく動作していません。 これは 認証とは別問題ですね。 (つまり認証までは 成功していると思われます)  .htaccessファイルの内容は、上述の <Files ~ </Files> だけですか? もしかして、それ以外に ロリポップで使えなくなった(?) Options +FollowSymLinks とか Option All ***** を書いているのなら、それが原因かもしれないので、 その行を試しに消してテストしてはどうでしょう。

webpageyou123
質問者

お礼

# === index.htmlなしに統一 ================================ RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ https://xxx/$1 [R=301,L] # === httpsに統一 ================================ RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # === 間違ったアドレスはブログトップへ遷移 ================================ RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ https://xxx/html/blog-top.html [L] # === ポジティブになるアプリの認証 ================================ <Files charge.html> AuthUserFile /var/www/vhosts/xxx/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user </Files> 上記ですべてです。 ありがとうございます。

回答No.1

<Files html/charge.html> を <Files charge.html> に変更するとどうなりますか?

webpageyou123
質問者

お礼

ありがとうございます。 確かにそのようにした所、認証画面は出てきました。 しかし、入力したところID、PWが間違っていると認識されたからか下記のメッセージの画面になってしまいました。 ※CGI もしくは SSI が正しく動作していません。 • URLに間違いがないか、再度確認してください。再読み込みしてください。 • ご利用中のユーザー様は【ロリポップ!よくある質問集】をご参照ください。 • 疑問点等ございましたら【ロリポップ!お問合せフォーム】よりお問合せください。 そして、一度でも失敗すると、何度アクセスしても上記の画面になってしまいます。 一度しかチャンスが無いのですか? またパスワードファイルには、 test:yqaAb0nkjHuBQ(PWは暗号変換済み) となっているのですが、これだけの記載があればいいのですよね。 暗号変換済みのPWは、上記ではなく変換前の文字列を入れるんでしょね。 間違ってはいないはずなのですが

関連するQ&A

  • 特定のページだけ認証をかけたい

    このページだけ認証をかけたいのにすべてのページにかかってしまします。 domeinname/html/charge.html 下記のようにしたのですがどこが間違っているのでしょうか? AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files html/charge.html> require valid-user </Files> ・また下記のようにさらにいくつかのページをそれぞれ別のPWにするなどと考えると、htaccsessではもう無理でしょうか? domeinname/html/charge2.html domeinname/html/charge3.html その後下記のようにしたのですがこちらで正しいでしょうか? AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require all granted <Files html/charge.html> require valid-user </Files> <Files html/charge2.html> require valid-user </Files> <Files html/charge3.html> require valid-user </Files>

    • 締切済み
    • PHP
  • 特定のページだけ認証をかけたいです

    このページだけ認証をかけたいのにすべてのページにかかってしまします。 domeinname/html/charge.html 下記のようにしたのですがどこが間違っているのでしょうか? AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files html/charge.html> require valid-user </Files> ・また下記のようにさらにいくつかのページをそれぞれ別のPWにするなどと考えると、htaccsessではもう無理でしょうか? domeinname/html/charge2.html domeinname/html/charge3.html

    • 締切済み
    • CGI
  • 特定のページだけ心証をつける

    このページだけ認証をかけたいのにすべてのページにかかってしまします。 domeinname/html/charge.html 下記のようにしたのですがどこが間違っているのでしょうか? AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files html/charge.html> require valid-user </Files> ・また下記のようにさらにいくつかのページをそれぞれ別のPWにするなどと考えると、htaccsessではもう無理でしょうか? domeinname/html/charge2.html domeinname/html/charge3.html 共感した 0

    • 締切済み
    • CGI
  • 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 なにが問題なのでしょうか?

  • .htpasswdのbasic認証について

    basic認証を掛けたいのですがうまく動作しません。 通常表示されるトップページ(/httpdocs/index.html)は認証なしで 特定のページ(/httpdocs/pass/index.html)は認証を掛けたいと 思っています。 まずは、passフォルダ内に .htaccessと.htpassedとindex.htmlを作成し .htaccessの中身は AuthUserFile /httpdocs/pass/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> .htpassedの中身は aaa:bbb としています。 認証が成功すればpassフォルダ内のindex.htmlを表示させたいのですが 何回もIDとPASSを入れても入力画面が表示されindex.htmlを 表示することができません。 サーバーはレンタルサーバーのXbitを使っています。

  • 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までのパスは合っていると思います。 なぜダイアログが出てくれないのでしょうか・・・?

  • ベーシック認証で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による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でのベーシック認証ができない

    初心者です。 ホームページにパスワードをかけようとしているのですが、 設定した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がうまくいきません

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

専門家に質問してみよう