アクセス制御やカスタムエラーページ


.htaccess ファイルは Apache ベースの共用サーバーにおける柔軟なアクセス管理や、ユーザーフレンドリーなエラーページ設計に非常に有効です。
このページでは、アクセス制御とエラーページの基本設定方法を紹介します。


  1. IPアドレスによるアクセス制限
  2. 特定UA・国別ブロック(応用)
  3. カスタムエラーページの設定
  4. よくある設定ミスと対処法
  5. まとめ

1. IPアドレスによるアクセス制限

特定の IP アドレスのみにアクセスを許可したい場合、以下のように .htaccess に記述します。

<RequireAll>
  Require all denied
  Require ip 203.0.113.10
  Require ip 198.51.100.0/24
</RequireAll>
用途
固定IPのみ許可自宅や社内からのみ管理画面にアクセス
特定の国のアクセス拒否日本以外からのアクセスを制限(応用)

補足:サーバー側で mod_authz_host が無効の場合、使用できない可能性があります。


2. 特定UA・国別ブロック(応用)

Bot や特定国からのアクセスを遮断するには RewriteCond を用いた応用設定が可能です。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(BadBot|CrawlerX).*$ [NC]
RewriteRule .* - [F,L]

さらに高度な国別制限(GeoIP 使用)や WAF 統合は、共用サーバーでは制限があるため、CDN や Cloudflare の機能と併用するのが現実的です。


3. カスタムエラーページの設定

デフォルトでは無機質な 404 / 403 / 500 ページが表示されますが、.htaccess により任意のファイルへ誘導できます。

ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

ポイント

  • /errors/404.html のように 相対パス指定
  • WordPressなどCMS環境では リダイレクトループに注意
  • 見た目の統一とナビリンク設置で UX 向上

4. よくある設定ミスと対処法

症状原因対策
403 Forbidden が発生するRequire all denied だけ書いているIP許可を忘れていないか確認
カスタム404が出ないパス指定が不正 / ファイルがないエラーページファイルとパスを再確認
500 Internal Server Error.htaccess 文法ミス1行ずつコメントアウトで切り分け

5. まとめ

  • .htaccess による IP制限・UA制御は共用環境でも高い防御効果を発揮
  • エラーページをカスタマイズすることでブランディング強化・離脱率低下にも貢献
  • 設定変更時は常に「バックアップ → テスト → 本番適用」の順で進めましょう

[メール運用 & コミュニケーション]

上部へスクロール