Apache 2.4の.htaccessで以下の2つを実現したいです。
【環境】
.htaccessを利用する環境はフレームワークのSymfonyで構築したサイトで
一般的なサイトのように物理ディレクトリが存在せずルーティングによってURLを指定するため
.htaccessをディレクトリごとにわけるような方法はとれません。
- 特定のURLに対するアクセスにBasic認証を設定する
- サイト全体で特定のIPアドレスからのアクセスを拒否する
それぞれ以下の方法で実現可能なことはわかったのですが、
【特定のURLに対するアクセスにBasic認証を設定する】
AuthType Basic AuthName "Please enter username and password" AuthUserFile /path/to/.htpasswd AuthGroupFile /dev/null require valid-user SetEnvIf Request_URI "^/admin" admin_path <RequireAll> Require all granted Require not env admin_path </RequireAll>
【サイト全体で特定のIPアドレスからのアクセスを拒否する】
<RequireAll> Require all granted <RequireNone> Require ip <IPアドレス> Require ip <IPアドレス> </RequireNone> </RequireAll>
これら両方を実現する方法がわかりません。
以下のような方法も試してみたのですが、
AuthType Basic AuthName "Please enter username and password" AuthUserFile /path/to/.htpasswd AuthGroupFile /dev/null require valid-user SetEnvIf Request_URI "^/admin" admin_path <RequireAll> Require all granted Require not env admin_path <RequireNone> Require ip <IPアドレス> Require ip <IPアドレス> </RequireNone> </RequireAll>
除外したIPアドレスでアクセスした場合に
アクセス拒否(HTTP 403)ではなくBasic認証が求められてしまいます。
構文上そうなってしまうことはわかるのですが、
どうすれば解決するのかはわかりません。
初歩的な質問で申し訳ないのですが、
解決方法を教えていただけないでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/17 06:10
2022/03/17 07:54