ex1-lab

Linux, CentOS, Mac OS X, Windows, 仮想化, Apache等のLinux中心に気になることをメモがわりに・・・

PHP等のURLパラメータでIP制限やBASIC認証を設定する

    この記事は約2分で読むことができます。

Apacheで特定のQueryString(URLパラメータ)でIP制限などの制御をする

ApacehでIP制限をしているページがあり、そのページにアクセスがある場合、特定のパラメータを付きだとIP制限をせずにアクセスしたいって要望がありました。できれば「.htaccess」で制御したいって事でした。

<Directory>、<Location>、<File>のディレクティブを使えば簡単と思ったけどハマりました。下記の記事の<Directory>、<Location>、<File>のディレクティブの「.htaccess」は使えません

<Directory>, <Location> が.htaccessでは使えない

Rewriteを使って特定のQueryString(URLパラメータ)でIP制限などの制御をする

調べてみると、Rewriteを使って特定のパラメータがあると環境変数を付与して、その環境変数で「Deny from env=〜〜」とかで制御すればできることがわかりました。実際には下記のように設定にしました

http://example.com/test.php?secret=129319 とかのURLにアクセスすると、「secret=」がある場合はIP制限を無視しています。

Rewriteを使って特定のQueryString(URLパラメータ)でBASIC認証を設定する

この応用でBASIC認証でも使えます。
下記の場合は、http://example.com/test.php?secret=129319 とかのURLにアクセスして、「secret=」がある場合はBASIC認証をかけています。
「secret=」がない場合はBASIC認証をおこなわない設定です

 



 - Linux , ,