前提・実現したいこと
お世話になっております。
サイト全体にBasic認証をかけており、特定のサブディレクトリには別のBasic認証をかけたいのですが、2重でBasic認証がかかってしまい上手くいかず手詰まり状態となっております。
是非ともご教示いただければ幸いです。
例) ディレクトリ構造
public/ ├ .htaccess(全体Basic認証) ├ .htpassword(全体Basic認証) ├ index.html │ ├ css │ └ style.css ├ js │ └ script.js ├ img │ └ 各ディレクトリの画像 │ ├ fuga │ ├ .htaccess(fuga用Basic認証) │ ├ .htpassword(fuga用Basic認証) │ └ index.html │ ├ hogehoge │
https://example.com/ 全体Basic認証
https://example.com/hoge/ 全体Basic認証
https://example.com/fuga/ 別のBasic認証(このディレクトリのみ全体とは別でBasic認証をかけたい)
https://example.com/hogehoge/ 全体Basic認証
発生している問題・エラーメッセージ
PCのChromeでは問題なくいけていましたが、
iPhoneのSafariで確認するとfugaディレクトリにアクセスすると、2回ユーザー名とパスワードを入力になってしまいます。
動作例)
①https://example.com/にアクセス → 全体Basic認証で設定したユーザー名・パスワードを入力
②https://example.com/fuga/にアクセス → fugaディレクトリ用のユーザー名・パスワードを入力
③②を入力した後、再度ログインのポップアップが出てきて、全体Basic認証のユーザー名・パスワードを入力するとアクセスできるようになる
該当のソースコード
全体のBasic認証
<If "%{HTTP_HOST} != 'example.com'"> AuthUserFile /home/app/public/.htpasswd AuthType Basic AuthName "Restricted Access" Require valid-user </If>
fugaのBasic認証
<If true> AuthUserFile /home/app/hoge/fuga/.htpasswd AuthType Basic AuthName "Please enter your ID and password" Require valid-user </If>
試したこと
以下の参考サイトを拝見して実装をしてみましたが、発生している問題・エラーメッセージで記載した動作例のような挙動が起こっています。
参考サイト
https://kayakuguri.github.io/blog/2016/09/13/htpasswd-subdir/
他にもサイトを拝見しつつ、全体のBasic認証の設定と一緒にfugaディレクトリを除外し、fugaディレクトリにfuga用のBasic認証かけるようにしてみましたが、この方法も何故か同じ挙動が起きました。
全体のBasic認証
AuthType Basic AuthName "Restricted Access" AuthUserFile /home/app/public/.htpasswd SetEnvIf Request_URI "^/fuga/*" valid-url <RequireAny> Require valid-user Require env valid-ip Require env valid-url </RequireAny>
fugaのBasic認証
AuthUserFile /home/app/hoge/fuga/.htpasswd AuthType Basic AuthName "Please enter your ID and password" Require valid-user
補足情報(FW/ツールのバージョンなど)
Webサーバ:Apache2.4.46