セキュリティ

WordPressサイトの.htaccessで特定国からのアクセスを制限する方法(ジオブロック解説)

  • 16 読むのにかかる時間(分)
  • Hostragons チーム
WordPressサイトの.htaccessで特定国からのアクセスを制限する方法(ジオブロック解説)

WordPressサイトで特定の国からのアクセスを制限する、いわゆるジオブロック(地域ブロック)は、選択した国からのトラフィックをサーバーレベルで遮断する方法です。一般的にはApacheやLiteSpeedの.htaccessルール、GeoIP/MaxMindデータベース、IPブロックリスト、あるいはCDN/WAF(Web Application Firewall)サービスを活用します。ただし重要なのは、.htaccessファイル自体はアクセス元の国情報を把握できません。サーバーが国情報を変数として提供するか、対象国のIP範囲をルールに追加する必要があります。

本記事では、WordPressサイトで.htaccessを用いた国別アクセス制限の仕組み、適切な活用シーン、具体的なルール例、安全な運用手順、よくあるミスとその回避策を丁寧に解説します。単なるコードを紹介するだけでなく、実際のサイトで500エラーやSEO損失、決済・API連携の停止、Googlebotの誤ブロックなどリスクを抑えた実践的なプロセスを紹介します。もしWordPressサイトをHostragonsで運用している場合は、事前にホスティングパネルからファイルバックアップを取得し、段階的な変更を推奨します WordPressホスティング

ジオブロックとは?WordPressサイトでの効果と目的

ジオブロックとは、訪問者の地理的位置情報(主にIPアドレスに基づく)によってアクセスを制限する手法です。例えば、日本国内のみ販売を行うECサイトが、ターゲット外の国から大量の偽アカウント登録やスパムコメント、ブルートフォース攻撃を受けている場合、特定国からのアクセスを遮断できます。

WordPressの場合、ジオブロックは以下の目的で利用されます:

  • 管理画面への不正ログイン試行を減らす
  • スパムコメントやボットによる登録・偽フォーム送信を防ぐ
  • ライセンスや配信権、法令遵守の理由でアクセスを制限する
  • ターゲット外のトラフィックによるサーバー負荷を軽減する
  • 決済・配送・サービス対象外地域からの不要な問い合わせを減らす

ただし、ジオブロックは万能なセキュリティ対策ではありません。IP判定ミスやVPN/プロキシによる回避、正規ユーザーの誤ブロックなどの課題があり、強固なパスワード、2段階認証、WordPress最新版の維持、安全なプラグイン選択、SSL証明書、定期バックアップなど基本対策と併用が必須です SSL証明書

.htaccessファイルは国情報をどう扱う?

.htaccessファイルはApacheやLiteSpeedサーバーでディレクトリごとに強力な設定ができる構成ファイルです。WordPressのパーマリンク構造、リダイレクト、キャッシュルール、ファイルアクセス制限、セキュリティ設定など多くを管理できます。しかし、.htaccess自体はIPアドレスの国判定ができません。

国別アクセス制限には主に次の3アプローチがあります:

  • サーバーでGeoIPやMaxMindモジュールが有効なら、国コード変数を用いたルール記述
  • 対象国のIP範囲(CIDR)を.htaccessに追加して制限
  • CDN/WAFやセキュリティプラグインで国制限し、.htaccessは補助的に運用

2026年時点では、多くのケースでCDN/WAFやMaxMindベースのサーバー側ソリューションが最も確実です。国別IPブロックは頻繁に変わり、.htaccessに大量ルールを書き込むとパフォーマンスが悪化します。ただし小規模かつ限定的な制限なら.htaccessは手軽な選択肢です。

変更前に必ずやるべきチェックリスト

.htaccessの編集ミスはサイト全体のアクセス不能(500 Internal Server Error)、リダイレクトループ、wp-adminログイン障害、予期しない403 Forbiddenなどを引き起こします。安全な運用のため、以下のチェックリストを実施してください:

  • 現在の.htaccessをPCに保存し、日付付きバックアップを作成
  • WordPressファイルとデータベースのバックアップを取得 ウェブサイトバックアップ
  • ホスティングパネルやFTPが正常に使えるか確認
  • まずは単一のテストルールから始め、複数IPや国を一度に追加しない
  • Googlebot、決済プロバイダー、配送連携、APIサービス、CDNのIP範囲が影響しないか確認
  • 変更後、異なるネットワークからサイトアクセスをテスト(自分だけでなく第三者の環境も確認)

経験上、ミスの多くはルールの記述位置によるものです。WordPressのリライトルールは通常「BEGIN WordPress」と「END WordPress」の間にあります。セキュリティルールは大抵このブロックより上に記述する方が安全です。WordPress側でパーマリンク設定を更新すると自動的にこのブロックが再生成されるためです。

方法1:GeoIPまたはMaxMind変数を用いた.htaccess国別制限

サーバーが国コード変数(環境変数)を提供する場合、.htaccessでその値に基づいてアクセス制限が可能です。旧環境ではmod_geoip、現代的な環境ではMaxMind GeoLite2やmod_maxminddbなどが利用できます。変数名はサーバー設定によって違い、GEOIP_COUNTRY_CODE、MM_COUNTRY_CODE、GEOIP_COUNTRY_CODE_V6などが代表例です。

サンプルロジック

以下は、GEOIP_COUNTRY_CODE環境変数が有効なサーバーで特定国コードをブロックする例です。コードをコピーする前に、ホスティング会社がどの変数をサポートしているか必ず確認してください。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN|KP)$
RewriteRule ^ - [F,L]
</IfModule>

この例では、RU(ロシア)、CN(中国)、KP(北朝鮮)の国コードからのアクセスが403 Forbiddenとなります。国コードはISO 3166-1 alpha-2(2文字)です。日本ならJP、ドイツならDE、アメリカならUSを指定可能。複数国のコードは「|(縦線)」で区切ります。

wp-login.phpのみ国別制限する場合

サイト全体ではなく、WordPressのログインページ(wp-login.php)のみ制限するのが現実的なケースです。たとえば、コンテンツは全世界に公開しつつ、ログインは特定地域のみ許可したい場合に有効です。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-login\.php$ [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN)$
RewriteRule ^ - [F,L]
</IfModule>

これにより、通常ページは制限せず、管理画面の入り口のみ特定国でブロックできます。ブルートフォース攻撃の多くがwp-login.phpやxmlrpc.phpに集中するため、効果的な防御策です。

方法2:IP範囲(CIDR)で.htaccess国別制限

サーバーでGeoIP変数が使えない場合、対象国のIPブロックを.htaccessに追加可能です。ただし、この方法は管理コストが高く、大規模国では数千のCIDRブロックが必要でパフォーマンスに悪影響です。IP割り当ては変動するため、リストの定期更新も不可欠です。

Apache 2.4以降では「Require not ip」構文でIP制限できます。例:

<RequireAll>
Require all granted
Require not ip 203.0.113.0/24
Require not ip 198.51.100.0/24
</RequireAll>

これらのIP範囲は例示であり、実際の国別リストではありません。正規のCIDRリストを最新・信頼できるソースから取得してください。500行以上のIPルールが必要な場合は、.htaccessよりサーバーのファイアウォールやWAF、CDNでの運用を推奨します。

方法3:CDN/WAFによるジオブロックと.htaccess補助運用

近年のWordPressセキュリティでは、国別アクセス制限はCDNやWAFによる運用が最もスケーラブルです。CloudflareやSucuri、LiteSpeed Web ADC、Imunify360などは国別ルールを高速かつ集中管理できます。これらはウェブサーバーに到達する前にリクエストをフィルタリングするため、CPUやRAM、PHP処理の負担を軽減します。

.htaccessも無意味ではありません。たとえばCDN経由で本来のクライアントIPを取得したり、特定ファイルへの追加制限を設けたり、WordPressログインURLへの補助ルールを加える場合に役立ちます。ただし主要なジオブロックはCDN側で行うのが高トラフィックサイトでは最適です。

各方法の比較表

各方法の比較表
方法メリットデメリット推奨対象
GeoIP変数+.htaccess サーバーレベルで高速ルール可。プラグイン依存なし。 GeoIP/MaxMind対応サーバー必要。変数名はプロバイダーごとに異なる。 Apache/LiteSpeed利用&技術管理重視のサイト。
IP範囲(CIDR)+.htaccess 追加モジュール不要。小規模IPリストなら手軽。 大規模リストでは性能・管理面に課題。 少数IPブロックのみ制限したい場合。
CDN/WAFジオブロック サーバー到達前に遮断。管理容易。レポート機能あり。 追加サービス設定必要。ミス設定で正規ユーザーも影響。 高トラフィック&セキュリティ重視&拡張性求めるサイト。
WordPressセキュリティプラグイン 管理画面から操作可。技術知識不要。 PHP実行後に動作。サーバーリソース消費大。 コード編集不要の小〜中規模サイト。

ステップ・バイ・ステップ:WordPress .htaccessで安全なジオブロック運用

ステップ・バイ・ステップ:WordPress .htaccessで安全なジオブロック運用

1. ブロック対象を明確に

サイト全体を制限するか、wp-login.phpやxmlrpc.phpなど特定ページのみかを事前に決定します。全体ブロックはSEOやブランド露出、顧客体験面でリスクが高く、管理・攻撃対象のみ制限する方が現実的です。

2. トラフィック分析

決定前に7〜14日分のアクセスログ、セキュリティプラグインの記録、Google Analyticsなどをチェック。例えば全トラフィックの3%しかない国から攻撃の60%が来ていれば制限の価値あり。ただし、その国から売上の12%があるなら、全ブロックは収益損失につながります。

3. サーバー対応を確認

ホスティング環境がApacheかLiteSpeedかNginxかを把握(.htaccessはApache/LiteSpeedのみ機能、Nginxでは直接利用不可)。Hostragonsで適切なプラン選択時はWordPress対応、バックアップ、SSL、セキュリティ機能を総合的に評価してください ウェブホスティング

4. テストルール追加

まず一国または一IPブロックのみでテスト。ルールは.htaccessのWordPressブロックより上に記述。変更後、トップページ、wp-admin、商品ページ、フォーム送信、決済フローをチェック。

5. ログ監視

403エラーの発生数と発生元を確認。予想以上に403が多い場合、ルール範囲が広すぎる可能性あり。CDN配下の場合、サーバー側で訪問者IPがCDN IPとして認識され、国判定が狂う場合があります。

6. ルールのドキュメント化

.htaccessにコメント行を追加。どの国をなぜブロックしたか、ルール追加日時と承認者を明記。例:# 2026-02-15: wp-login攻撃対応でRU/CNブロック

SEO面で注意すべきポイント

ジオブロックはSEOに直接影響します。Googlebotは多くの場合米国IPからクロールします。USなどを全サイトでブロックするとGoogleのクロールが困難となり、インデックス消失や順位低下、Search Consoleでエラー報告の原因となります。

SEO安全運用には以下を徹底:

  • Googlebot、Bingbotなど主要検索エンジンのボットを誤ってブロックしない
  • 多言語・多国ターゲットの場合、hreflangやcanonical、リダイレクトの動作を検証
  • 403エラーページには分かりやすい説明文を表示(無記述は信頼損失)
  • Search Consoleのインデックス状況・クロール統計・ページ体験レポートを変更後チェック
  • SEO目的でジオブロックや異なるコンテンツ表示は避ける(クローキングリスク)

特にグローバル向けブログ、SaaS、観光業、輸出ビジネスでは全国ブロックを慎重に判断してください。スパムフォーム削減ならreCAPTCHAやレートリミット、セキュリティプラグインやWAFの方がリスクが低いです。

ジオブロックだけでWordPressのセキュリティは十分?

十分ではありません。ジオブロックは攻撃面の縮小に役立ちますが、VPN/プロキシ/ボットネット/クラウドサーバーIPを用いた攻撃者には回避されます。WordPressのセキュリティは多層防御が基本です。最低限以下を併用しましょう:

  • WordPress本体・テーマ・プラグインを最新に保つ
  • 管理者アカウントはユニークなユーザー名と強力なパスワードを設定
  • 2段階認証を有効化
  • wp-login.phpやxmlrpc.phpへのアクセスにレートリミット導入
  • 不要なプラグイン削除、不明なテーマは利用しない
  • SSL証明書で全トラフィックをHTTPS化 SSL証明書
  • 定期バックアップとリカバリープラン策定

良質なホスティング環境もセキュリティ基盤です。リソースの分離、最新PHP、マルウェアスキャン、自動バックアップ、迅速なサポートなどがWordPress安全運用の鍵 安全なWordPressホスティング

よくあるミスとその対処法

ミス1:.htaccessに巨大IPリストを追加

数千行のIPルールは全リクエストで処理されるためパフォーマンスが極端に低下します。大規模国別リストはCDN/WAFやサーバーファイアウォールで運用しましょう。

ミス2:Googlebotや連携サービスのブロック

決済/メール/配送API/検索エンジンなどは海外IPからアクセスする場合があります。変更後はログを確認し、重要サービスはホワイトリスト化を徹底。

ミス3:Nginxサーバーに.htaccess適用を期待する

Nginxは.htaccessを読みません。Nginx環境では同等ルールをconfファイルに記述。共有ホスティングでは編集できない場合が多く、CDNやセキュリティプラグインの活用が現実的です。

ミス4:バックアップなしで本番ファイルを編集

1文字のミスでサイトが完全にアクセス不能になることも。バックアップがないと復旧に時間がかかります。ファイルマネージャーで編集する場合は、保存前に現内容を安全なテキストにコピーしましょう。

ミス5:データに基づかないブロック判断

推測だけで国制限すると顧客損失につながります。事前にログやセキュリティレポート、売上データを分析。必要ならサイト全体ではなく、wp-login.phpや特定フォームのみ制限を検討。

代替策:プラグイン・ファイアウォール・サーバーレベル運用

コード編集が難しい場合は、WordPressセキュリティプラグインで国別制限機能が利用可能です。ただし多くのプラグインはWordPress/PHP実行後に動作するため、ボット大量アクセス時にサーバーリソース消費が増えます。小規模サイトなら管理の簡便さがメリット。

サーバーレベルではCSF、firewalld、iptables、またはホスティングパネルでIP/CIDR制限が可能。これは.htaccessより優先度が高いですが、共有ホスティングでは利用不可の場合が多いです。Hostragonsサポートへ相談し、必要なセキュリティやマネージドホスティングも検討できます ホスティングパッケージ

運用後の必須チェックリスト

ジオブロックルール追加後、以下のチェックを完了するまでは作業完了としないでください:

  • トップページ、カテゴリ、記事、商品、カートページの動作確認
  • wp-adminおよびwp-login.phpのアクセスを正規国から検証
  • お問い合わせ・登録フォーム、決済フローの正常送信をチェック
  • Search ConsoleのライブURLテストを実施
  • サーバーログで500や予期しない403増加の有無を確認
  • CDN利用時はキャッシュクリア&正しいIP伝達の確認
  • ルール目的・追加日をチームドキュメントに記載

これらのチェックは収益サイトでは特に重要です。単純な国別制限ルールでも決済や広告品質、メール認証、API連携に悪影響を及ぼす場合があります APIと統合

よくある質問

WordPressの.htaccessで特定国からのアクセス制限は可能ですか?

はい、可能です。ただし、.htaccessが国情報を扱うにはGeoIP/MaxMind変数の有効化、または対象国IP範囲のルール追加が必要です。単独ではIPの国判定はできません。

.htaccessによる国別制限はSEOに悪影響ですか?

設定ミスで悪影響となる場合があります。特にGooglebotやCDN IPをブロックするとクロール障害につながります。全体制限より、wp-login.phpなど重要ポイントのみ制限する方が安全です。

どの国コードを使えばいいですか?

通常はISO 3166-1 alpha-2(2文字)国コードを使います。日本ならJP、ドイツはDE、アメリカはUS、フランスはFRなど。GeoIP変数名やコード形式はサーバー設定ごとに確認を。

Nginxサーバーで.htaccessによるジオブロックは可能ですか?

不可能です。Nginxは.htaccessを読みません。Nginxではconfファイルやmap/geoモジュール、WAF、CDN、セキュリティプラグインなどの代替手段を利用します。

ジオブロックでVPN利用者の攻撃を防げますか?

完全には防げません。VPN/プロキシ/ボットネット利用の場合、他国IPでアクセスされます。ジオブロックは攻撃量を減らす補助的な防御であり、2段階認証やWAF、更新、強力パスワード、バックアップと併用が前提です。

まとめと次のステップ

WordPressの.htaccessによる国別アクセス制限は、正しく設定すればスパムやブルートフォース、不要トラフィックの軽減に有効です。安全運用にはデータ分析→必要箇所だけ制限→バックアップ→テスト→ログ監視が必須。大規模な国別制限はCDN/WAFやサーバーレベルソリューションが推奨されます。WordPressサイトの安全・高速・持続可能なインフラを構築するなら、Hostragonsのホスティング・ドメイン・SSLサービスを検討し、計画的な導入をおすすめします ドメイン検索 WordPressホスティング

この記事を共有する:

Hostragons チーム

ホスティング、サーバー、ドメイン名に関する、当社の専門チームによる最新ガイド。お客様のプロジェクトに最適なソリューションを一緒に見つけましょう。

お問い合わせ