IP制限・パスワード制限を同時にかける.htaccess

目的:内部ネットワードでIP制限で・外向けはパスワード入力
きっかけはApache + PHPでWordpress社内ブログを開設ことになったことです。
社内の内部ネットワードでIP制限でページを閲覧したいが、 外で閲覧するときはパスワード入力(BASIC認証)が必要になります。

.htaccess ファイル

satisfy any

AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /hogehoge/hogehoge/www/~~~~~~~~~oge/hogehoge/hogehoge/.htpasswd

<Limit GET POST>
order deny,allow
deny from all
allow from ***.***.***.***
require valid-user
</Limit>

説明

IP制限かBASIC認証の中いずれか一つ必要、両方必要の場合はallかな
satisfy any
BASIC認証
AuthType Basic
パスワード入力するときのメッセージ
AuthName "Input your ID and Password."
パスワードファイルのパス(⇒参考1)
AuthUserFile /hogehoge/hogehoge/www/~~~~~~~~~oge/hogehoge/hogehoge/.htpasswd
制限しないIPを記入
allow from ***.***.***.***
参考1:パスワードファイルのパスの調べ方

共用レンタルサーバの場合、自分に接続できるフォルダしか見れないので、この方法で調べます。
上記の例のように、共用サーバのパスが非常に深いかもしれないです。
.htaccessファイルをかける前に、phpページをパスワードファイルと同じディレクトリに置きます。
phpファイルの内容は:

<?php echo __FILE__ ?>

こうして、ブラウザのこのページにアクセスするとき、パスが表示されます。

参考2:パスワードを生成・パスワードファイルを作成

ユーザ名とパスワードを下記のサイトに入力し、パスワードを生成する。
http://www.htaccesstools.com/htpasswd-generator/
もらったパスワードを下記のような格式で.htpasswdに書き込む (ユーザ名:aaa) (パスワード:bbb)

aaa:$apr1$FGnxtjXz$T15lNfrlY7pvpksbyiefh1

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>