htaccessファイルにて特定のIPの場合のみBasic認証無し、その他の場合はBasic認証有りにする方法
開発中の環境で指定したIPからのアクセスはBasic認証無しに、それ以外のアクセスはBasic認証有りにしてほしいと要望を受けた。PHP側で制御する必要があるのかと思いきや、調べてみたところhtaccessファイルにて対応できるみたい。以下に対応方法についてメモ。
対応方法
パターン1
IPの「xxx.xxx.xxx.xxx」部分は適宜変更すること。
<If "%{REMOTE_ADDR} != 'xxx.xxx.xxx.xxx'">
AuthType Basic
AuthName "Please enter your ID and password
AuthUserFile /path/to/.htpasswd
require valid-user
</If>
パターン2
IPの「xxx.xxx.xxx.xxx」部分は適宜変更すること。また、こちらは複数指定可能。
<RequireAny>
Require ip xxx.xxx.xxx.xxx
Require ip xxx.xxx.xxx.xxx
AuthType Basic
AuthName "Please enter your ID and password
AuthUserFile /path/to/.htpasswd
require valid-user
</RequireAny>
その他
どちらのパターンもapache2.4系じゃないとダメっぽい(調べた限りでは)。
古いバージョンだと使えない可能性があるので注意すること。
関連記事
-
-
htaccessファイルにてVPS⇔レンタルサーバ間のリバースプロキシ設定を行う方法
VPSの指定したディレクトリにアクセスした場合、レンタルサーバの指定したディレク ...
-
-
htaccessを置いてあるフォルダのファイルを参照
曖昧だけどhtaccessでベーシック認証とかIP制限かかってる フォルダ内のプ ...
-
-
ブラウザがWebP対応の場合はそのまま表示し、非対応の場合はjpg/png画像を表示させる方法
ページ表示時にブラウザがWebP画像に対応している場合はそのまま表示し、非対応の ...
-
-
apacheで指定した期間(日時)のアクセスログを抽出する方法
apacheのaccess_logとerror_logで特定日時内のログのみを確 ...
-
-
htaccessファイルで海外からのアクセスをIP制限する方法
「サーバー立てたらすぐ攻撃が来る」と聞いたのでアクセスログを確認したところ、海外 ...