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

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

新規登録して質問してみよう
ただいま回答率
85.35%
公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

BASIC

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

.htaccess

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

Q&A

2回答

1624閲覧

basic認証を特定フォルダにかける

mayu

総合スコア14

公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

BASIC

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

.htaccess

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

0グッド

1クリップ

投稿2020/02/09 02:04

編集2020/02/11 09:04

.htaccessファイルは、basicフォルダでなく都合でルート階層に置いています。
.htpasswdファイルは、basicフォルダ内に入れています。

.htaccessファイルに、下記のように記述して「basic」というフォルダにだけbasic認証をかけようとしているのですが、全部のファイルにかかってしまいます。

.htacessの中身はこんな感じで書いています。

Satisfy Any AuthType Basic AuthName "Input your ID and Password." AuthUserFile /basic/.htpasswd require valid-user SetEnvIf Request_URI "/basic/" secure_dir Order Allow,Deny Allow from all Deny from env=secure_dir

どこを直せば、basicフォルダにアクセスしたときだけかかりますでしょうか。

どうぞよろしくお願いいたします。

▼2/10追記
上記、指定フォルダにbasic認証をかけることはできたのですが、ログインIDとパスワード、.htpasswdに書いているもので入力しても、再入力を求められてしまいます。
記述方法や置く場所などが間違っているのでしょうか。
たびたびすみませんがご教示いただけますと幸いです。。

ログイン画面

.htpasswdファイル内

▼2/11追記
すみません、サーバー情報の記載ができていませんでした。
サーバーによって、設定の仕方が違うのですね。

XFreeの管理画面 PHP・MySqlのサーバ情報に、ドキュメントルートとして

/home/[サーバー名]/[ドメイン名]/public_html/

の記載があったので、これが間違っていたのかと思って、

/home/[サーバー名]/[ドメイン名]/public_html/basic/.htpasswd

※サーバー名、ドメイン名は変更して記載

に書き換えをしてみたのですが、やはり同様に再入力を求められます。

今開いているページが、ちゃんと.htpasswdを参照できているのか知る方法ってあるのでしょうか。

どうぞよろしくお願いします。

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

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

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

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

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

guest

回答2

0

ちょっとテストできていませんが、

Apache

1<If "%{REQUEST_URI} =~ /basic/"> 2AuthType Basic 3AuthName "Input your ID and Password." 4AuthUserFile /basic/.htpasswd 5Require valid-user 6</If>

でどうでしょうか?

投稿2020/02/09 11:24

otn

総合スコア85901

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

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

mayu

2020/02/10 04:33

ありがとうございます、 やってみたのですが500エラーになってしまいました????
otn

2020/02/10 15:58

もしかすると、Apacheのバージョンが2.2とかですかね? 2.4以降の機能です。
mayu

2020/02/11 03:47 編集

ありがとうございます。 バージョン2.2.3となっているので、そうみたいです せっかく教えていただいたのにすみません????
otn

2020/02/11 10:10

すいません。バージョンを書いておけばよかったですね。 2.2はすでにアップデートが終了しています。
mayu

2020/02/11 13:31 編集

いいえ、そんなことも知らずでお手数おかけします。 教えていただきまして、ありがとうございます!
guest

0

ざっくりと見た感じ問題なさそうだったので試してみました。

Apache の設定ファイルで、

Allowoverride All

を設定してある環境で、質問に記載されている .htaccess ファイルをそのまま記載してみたところ、質問に記載されている「希望する動作」をしているように見えます。

おそらく、.htaccess の質問に記載されていない部分か apache のサーバー設定が影響していると思われますが、Apache の設定はどの様になっているでしょうか?


以下、試した結果。

アクセス時の画面の例:

http://web1.example.jp/ アクセス時
イメージ説明

http://web1.example.jp/basic/ アクセス時
イメージ説明

apache の access_log を確認しても

192.168.10.101 - - [09/Feb/2020:19:32:45 +0900] "GET / HTTP/1.1" 200 96 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15" 192.168.10.101 - - [09/Feb/2020:19:32:47 +0900] "GET / HTTP/1.1" 200 96 "http://web1.example.jp/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15" 192.168.10.101 - - [09/Feb/2020:19:32:59 +0900] "GET /basic/ HTTP/1.1" 401 381 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"

となっており、GET / は、拒否されていない。 GET /basic/ は、401 で拒否されています。

投稿2020/02/09 11:03

編集2020/02/09 11:04
CHERRY

総合スコア25218

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

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

mayu

2020/02/10 04:45

ありがとうございます。 XserverのXfreeと、CPIの共用サーバにアップしてみたのですが、すみませんApache の設定をどこでするのかわからずでした???? ただすみません、再度同じソースでアップロードして確認してみたら、一応basicディレクトリで認証がかけられたようでした。お手数をおかけしましてすみません。 ただ、basic認証のログインIDとパスワード、.htpasswdに書いているもので入力しても、再入力を求められてしまいます。 .htpasswdの中身には、abc:def とだけ書いています。 (または、https://www.luft.co.jp/cgi/htpasswd.php のようなサイトでパスワードを変換して入力してみたりしております。) 記入の仕方については、これで特別変わった書き方が必要ということでもないようなので、理由がわからずにおります。保存形式が決まっているとか何かありますでしょうか。 たびたびすみませんが、ご教示いただけますと幸いです。
Y.H.

2020/02/21 06:30 編集

パスワードが8文字を超える場合はmd5形式で生成してみてください。 またAuthUserFileでの指定は以下が正解です。 AuthUserFile /home/[サーバー名]/[ドメイン名]/public_html/basic/.htpasswd
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問