なんてことはない話ではあるのですが、ぴったり当てはまるケースの記事が検索でヒットしなかったのでメモしておきます。
.htaccess
使用- 特定のIPアドレスからのアクセスを全面的にブロック
- ただし403ページは表示させたい
こんなケースです。肝心なのは2つ目の部分で、単純に全面ブロックだけだとオリジナルにカスタマイズした403ページすらアクセスできずにサーバデフォルトの403になってしまうので、そこが注意が必要な部分です。
そこで以下のような .htaccess
となりました。
order allow,deny
allow from all
deny from XXX.XXX.XXX.XXX
deny from YYY.YYY.YYY.YYY
deny from ZZZ.ZZZ.ZZZ.ZZZ
<FilesMatch "^\/error403\.html$">
allow from all
</FilesMatch>
ErrorDocument 403 /error403.html
最初の方は「特定のIPのみアクセスをブロック」の部分です。
次に、FilesMatch
の部分が「ドキュメントルートに存在するerror403.html
のみ全面的にアクセスを許可(最初にブロックしたIPもアクセス可)」となります。
最後に ErrorDocument
で403のエラーページをerror403.html
にしてあげればOK。