.htaccess
ファイルは Apache ベースの共用サーバーにおける柔軟なアクセス管理や、ユーザーフレンドリーなエラーページ設計に非常に有効です。
このページでは、アクセス制御とエラーページの基本設定方法を紹介します。
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制御は共用環境でも高い防御効果を発揮- エラーページをカスタマイズすることでブランディング強化・離脱率低下にも貢献
- 設定変更時は常に「バックアップ → テスト → 本番適用」の順で進めましょう