• 締切済み

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

このページだけ認証をかけたいのにすべてのページにかかってしまします。 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
  • 回答数3
  • ありがとう数5

みんなの回答

回答No.3

「require user passwdのid名」 の部分が気になりました。 require user までは 決まり文句で、この通りに記述して そのあとは、.htpasswdファイルに記述されているこのファイルにアクセス権限を与えたいIDです。 ”passwdのid名”というのが、.htpasswdファイル中のID のことなら これで問題ないです。 しかし、さすがに「なにも表示されません」だけでは原因を 絞り込める方はいなかと思われます。 なににアクセスしたらどういうメッセージが表示されたとか その時のサーバーのエラーログには、どう記録されているとか 使っているサーバーのマニュアルを呼んで使える機能なのかとか 確認して丁寧に原因を絞り込んでいくしかないです。 エラーログを見ても具体的にエラー内容を書いていないようなら、 たとえば、 .htaccessをこう変えたらどうなったとか、 .htaccessに記述した.htpasswdファイルのパスがあってるかとか .htpasswdファイルの中身は正しいのかとか 対象のhtmlファイルはサーバー上に存在しているのかとか .htaccessファイルでのBASIC認証の指定がどこまでできるサーバーなのかとか そもそも.htaccessファイル自体が使えるサーバーなのかとか そいう情報を知っているのは あなただけなので そうやって絞り込んでいかれてはどうでしょうか。

webpageyou123
質問者

補足

ありがとうございます。お返事遅れてすいません。 仕事が忙しくなってしまったのでしばらくお時間ください。 またお返事します。

回答No.2

> htmlフォルダの中にhtmlファイルがあるのに、相対パスで記載する必要がないのですか? そうです。 この.htaccessファイルをおいたディレクトリ下の どの階層にあるファイルでも、ファイル名としてマッチするものがあれば、 対象となります。

webpageyou123
質問者

お礼

そうなんですね。ありがとうございました。 相対パスで記載するとむしろうまくいかないのですね。

webpageyou123
質問者

補足

# === 有料ぺージなどの認証 ================================ AuthUserFile /home/users/1/chu.jp/web/.htpasswd AuthName "Input ID and Password." AuthType Basic <Files charge.html> require user passwdのid名 </Files> <FilesMatch "^¥.ht"> Order allow,deny Deny from all </FilesMatch> 教えていただいたことを参考にこのようにしましたが、何の反応もありません。 どこか間違っているでしょうか?

回答No.1

AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null  <<★4 AuthName "Input ID and Password." AuthType Basic require valid-user    <<★1 <Files html/charge.html> <<★2 require valid-user  <<★3 </Files> とありますが (1) 上記の★1の行があるので、 この.htaccessを設置したディレクトリの階層以下の全てのページへのアクセスに対して BASIC認証が必要であることを指定していて、これが 「すべてのページにかかってしまします。」の原因です。 なので、この行を削除してしまいましょう。 (apache2.4以上なら ここをrequire all grantedとしてもよいですけど) (2) ★2の記述ですが <Files ~では ファイル名の部分を記述するので <Files html/charge.html> でなく <Files charge.html> と記述します。 もし、htmlディレクトリ以外にも、charge*.htmlがあって そっちは認証不要にしたい ということなら、この記述のある.htaccessごと htmlディレクトリに移動させます。 (3) ファイルごと(ページごと)に認証ユーザーとパスワードを切り替えたいなら ★3の部分をファイルごとに切り替わるように <Files charge.html> require user user名1 </Files> <Files charge2.html> require user user名2 </Files> <Files charge3.html> require user user名3 </Files> として、それぞれのアクセス権限を与えるユーザー名を切り替えます。 (require valid-user と記載すると、認証できた全てのユーザーにアクセス権限を与えることになりますので) なお、当然のことながら、 .htpasswdファイルには、この3つのuser名を作って それぞれ個別のパスワードを設定しておくことになります。 (4) それと ★4のAuthGroupFile があるとエラーするサーバーがありますが /dev/nullを指定ということは不要ということなので、 これごと削除してしまってよいでしょう。 (5) .htaccessや.htpasswdファイルを、悪意のあるユーザーがWebアクセスして 取り出せてしまわないように、以下を記述して守っておく必要があります。 (サーバー側でやってくれている場合もありますが、念のため) <FilesMatch "^¥.ht"> Order allow,deny Deny from all </FilesMatch> まとめると ------- AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthName "Input ID and Password." AuthType Basic <Files charge.html> require user member1 </Files> <Files charge2.html> require user member2 </Files> <Files charge3.html> require user member3 </Files> <FilesMatch "^¥.ht"> Order allow,deny Deny from all </FilesMatch> っことになるでしょう。

webpageyou123
質問者

お礼

>>> (2) ★2の記述ですが <Files ~では ファイル名の部分を記述するので <Files html/charge.html> でなく <Files charge.html> と記述します。 もし、htmlディレクトリ以外にも、charge*.htmlがあって そっちは認証不要にしたい ということなら、この記述のある.htaccessごと htmlディレクトリに移動させます。 >>> こちらの件ですが、htmlフォルダの中にhtmlファイルがあるのに、相対パスで記載する必要がないのですか? 自動的に、すべてのhtmlファイルを確認して、同じファイル名のhtmlファイルを自動認識してくれるのでしょうか? そうでないと、相対パスで記載しないと、認識できないはずですよね。 ちなみに同じhtmlファイルは一つしかありません。 詳細なご回答大変ありがとうございました。

関連する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

    • 締切済み
    • 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
  • 特定のページだけ認証をかけたい

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

  • ベーシック認証で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> ------------------------------------------ よろしくお願いいたします。

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

  • .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を使っています。

  • 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でのベーシック認証は可能との記載がありました。 明日必要なので、すみませんがお力添え願います。

  • HPにベーシック認証を設けたいですが、どうしてもうまく使用することがで

    HPにベーシック認証を設けたいですが、どうしてもうまく使用することができません。 サバは下記を利用しております。 ・@pages http://atpages.jp/ サーバは「www10」です。 『.htaccess』を AddHandler cgi-script htaccess AuthUserFile /usr/local/www/htdocs/ユーザID/public_html/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user 『.htpasswd』を wow:pk6FemT25ZVpE (※ユーザ名:wow パス:1111) パーミッションは「604」に設定しました。 cgiのページに(下記のようなページです。) http://www.kent-web.com/chat/sample/windy.cgi ベーシック認証をつけたいんです。 どこが間違っているのかサッパリ解らなくて・・・どなたか教えてください。どうかよろしくお願いします。

専門家に質問してみよう