質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

603閲覧

ベーシック認証の複数設置

nanashissss

総合スコア60

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2022/09/08 03:37

編集2022/09/09 13:24

ベーシック認証でディレクトリ単位とその中にある一部HTMLファイルにベーシック認証をつけたいです

階層は以下です

/ members  hoge.html .htaccess .htpasswd

現状のhtaccessと.htpasswd
.htaccess

AuthUserFile /var/www/vhosts/hoge.jp/httpdocs/members/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files>

.htpasswd

hoge:hoges

これでmembersはベーシック認証されてます。

こちらの状態に
membersディレクト内にあるhoge.htmlにベーシック認証をつけたいです。

試したこと
.htaccessに以下追記

<Files ~ (hoge.html)> require valid-user </Files>

.htpasswdにパスワードを追記でダメでした

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/09/08 04:20 編集

階層の説明を見ると、.htaccess はmembersの下でなく、横並びに見えますが、合ってますか?以降を見ると、membesrの下のように思えるのですが。
otn

2022/09/08 04:23

> これでmembersはベーシック認証されてます。 > こちらの状態にmembersディレクト内にあるhoge.htmlにベーシック認証をつけたいです。 membersに認証が掛かっていればその中のhoge.htmlにも認証が掛かっているはずですが、 http://example.com/members/ だと認証が必要となって、 http://example.com/members/hoge.html をダイレクトに行くと認証要とならないと言うことですか? アクセス毎に、毎回ブラウザをちゃんと終了させてますか?
nanashissss

2022/09/08 09:45

すみません 間違えてますね。。hoge.htmlと同じく半角スペースがhtaccessなどにないですね・ 以下のようになってます。 ├members/ │ └hoge.html │ └.htaccess │ └.htpasswd hoge.html は別の導線からアクセスされるので、 こちらにベーシック認証を付けたいのです
m.ts10806

2022/09/08 10:01 編集

直接members/hoge.htmlにアクセスしたとしても members/ と members/hoge.html の2回認証が必要な構成ですね。 1回で済ませたいのでしたら別ディレクトリにしたほうが良いのでは。
nanashissss

2022/09/08 10:05

membersから切り離す的な話でよろしいでしょうか? 以下のような members/ │ └hoge │   └hoge.html │   └.htaccess │   └.htpasswd 会員のコンテンツなので、membersの階層からは出せないのですが
nanashissss

2022/09/08 10:06

因みにhoge.htmlのみPHPでベーシック認証をすることは可能でしょうか? できるのなら.htaccessでのやり方以外でも大丈夫なのですが
m.ts10806

2022/09/08 10:29 編集

そもそもベーシック認証って、サーバの特定領域にアクセスした時にリクエストの横取りに近い形で認証する方式なので(私の認識です)、 サーバの中にアクセスするときに読まれるPHPで行うのはベーシック認証と言いません。 もういっそフォーム認証にしては。 ベーシック認証にこだわる理由が分かりません。
nanashissss

2022/09/08 10:46 編集

センシティブな情報なのでベーシック認証が必要なのです 一般的でないのはそうだと思います。。
otn

2022/09/08 11:00

何がやりたいのかちゃんと書きましょう。 membersディレクトリ全体が認証要となっているのであれば、その中のファイルhoge.htmlにも認証が掛かっています。 もしかして、membersディレクトリ全体の認証を不要と変更して、その中のファイルhoge.htmlにだけ認証を掛けたいと言うことでしょうか?
nanashissss

2022/09/08 13:07

申し訳ありません。 一旦確認中ですが、hoge.htmlにだけベーシック認証が出来うようにしたいです
m.ts10806

2022/09/08 21:06

タイトルと内容修正を。 正しく伝えられてないことで関わる人が多くの時間を浪費してしまいます。
guest

回答1

0

ベストアンサー

一旦確認中ですが、hoge.htmlにだけベーシック認証が出来うようにしたいです

タイトルの「ベーシック認証の複数設置」も、「こちらの状態にmembersディレクト内にあるhoge.htmlにベーシック認証をつけたいです。」も間違いと言うことですかね。タイトルと質問文が矛盾している質問はちょくちょくありますが、両方とも間違っていると回答困難ですね。
あるいは、書いたあとで気が変わったと言うことなら、書き直すべきでしょう。

特定ファイルだけ認証したいのなら、<Files>を使います。

Apache

1<Files hoge.html> 2AuthUserFile /var/www/vhosts/hoge.jp/httpdocs/members/.htpasswd 3AuthGroupFile /dev/null 4AuthName "Input ID and Password." 5AuthType Basic 6require valid-user 7</Files> 8<Files ~ "^.(htpasswd|htaccess)$"> 9deny from all 10</Files>

投稿2022/09/08 14:44

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanashissss

2022/09/09 04:24

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問