EC-CUBE Lab
produced by Cajiya
EC-CUBEに関するカスタマイズ方法やトラブルへの対処方法を発信

.htaccessを使用したIPアドレス制限とメンテナンス画面表示の設定方法

公開日: 2025年10月12日 | 更新日: 2025年12月02日
管理画面共通 機能不動作 EC-CUBE 4系全般 設定変更 Apache

要望や症状

EC-CUBE 4系において、機能リリースなどのタイミングで一般のユーザーにはメンテナンスモードを表示させつつ、関係者だけサイト表示をさせたいというケースがあります。

理由や原因

.htaccessでIPアドレス制限を行う場合、RewriteRuleとErrorDocumentの適切な組み合わせが必要です。 正しい503ステータスコードの返却とメンテナンス画面の表示を両立させるには、RewriteRuleの記述方法に注意が必要です。

解決策

EC-CUBEのルートディレクトリにある.htaccessファイルを以下のように設定します。

基本的な設定方法

# メンテナンス用のIPアドレス制限
ErrorDocument 503 /maintenance.php

<IfModule mod_rewrite.c>
RewriteEngine On

# メンテナンス画面自体へのアクセスは除外
RewriteCond %{REQUEST_URI} !^/maintenance\.php$
# 許可するIPアドレス(実際のIPアドレスに置き換える)
RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX$
# 503ステータスを返してメンテナンス画面にリダイレクト
RewriteRule ^(.*)$ - [R=503,L]
</IfModule>

複数IPアドレスを許可する場合

ErrorDocument 503 /maintenance.php

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/maintenance\.php$
RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX$
RewriteCond %{REMOTE_ADDR} !^YYY\.YYY\.YYY\.YYY$
RewriteRule ^(.*)$ - [R=503,L]
</IfModule>

環境変数を使用した代替案

ErrorDocument 503 /maintenance.php

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/maintenance\.php$
RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX$
RewriteRule ^(.*)$ - [E=maintenance:1]
RewriteCond %{ENV:maintenance} ^1$
RewriteRule ^(.*)$ - [R=503,L]
</IfModule>

設定時の注意点

EC-CUBEの.htaccessを変更する前に必ずバックアップを取得してください。IPアドレスは環境に応じて適切に設定し、XXX.XXX.XXX.XXXの部分を実際のIPアドレスに置き換えます。

設定後は指定IP以外からのアクセステストを必ず実施してください。また、メンテナンス画面(maintenance.php)は事前に準備しておく必要があります。

この方法により、指定したIPアドレス以外からのすべてのアクセスに対して503ステータスコードとともにカスタムメンテナンス画面を表示できます。

免責事項

本記事に掲載しているコードや手順は、執筆時点での情報および特定の環境下での動作確認に基づいています。 EC-CUBEのバージョン、サーバー環境、導入済みプラグインとの競合などにより、予期せぬ不具合が発生する可能性があります。

本記事の内容を実行した結果、生じた損害(データの消失、サイトの停止、機会損失など)について、当サイトおよび管理者は一切の責任を負いかねます。 実装にあたっては、必ずバックアップを取得し、検証環境(テスト環境)での動作確認を行った上で、ご自身の責任において実施してください。

この記事は参考になりましたか?

著者プロフィール: 株式会社カジヤ

当社はWeb業界の専門家として、培った経験や技術、自社事業を通して得た知見を土台に、 お客様の事業の成長を後押しすることを提供価値として活動する、Web事業の成長支援会社です。 EC-CUBE公式のパートナー制度「EC-CUBE インテグレートパートナー」に登録してしており、上位11%にあたる「ゴールドランク」に認定された実績があり、新しい通販サイトの構築から、カスタマイズ、リニューアルまで幅広く対応します。

管理画面共通 の関連記事

管理画面共通 パフォーマンス劣化 EC-CUBE 4系全般
EC-CUBEのlogフォルダ肥大化の管理方法

var/log/prodフォルダ内のログファイルが肥大化し、ディスク容量を圧迫している状況が発生しま...

👍 1 / 👎 0 2025年10月12日
管理画面共通 表示/テンプレート調整 EC-CUBE 4系全般
管理画面左上のEC-CUBEロゴをカスタマイズする方法

管理画面の左上に表示されているEC-CUBEのデフォルトロゴを、自社のロゴに変更したいと考えています...

👍 0 / 👎 0 2025年10月12日
管理画面共通 セキュリティ強化 EC-CUBE 4系全般
ロードバランサー経由でも管理画面IP制限を適用させるカスタマイズ方法

ロードバランサー配下にEC-CUBEサーバを構築している環境で、管理画面IP制限設定を実施しようとす...

👍 0 / 👎 0 2025年10月12日
管理画面共通 データ不整合 EC-CUBE 4系全般
CloudFrontやロードバランサー経由でも実際のアクセス元IPアドレスをログに記録する方法

AWS CloudFrontやロードバランサー、クラウド型WAFを使用している環境において、EC-C...

👍 0 / 👎 0 2025年09月23日

機能不動作 の関連記事

フロント共通 機能不動作 EC-CUBE 4系全般
CloudFrontを利用時にリンクのドメインがEC2のパブリックDNSになってしまう問題の解決方法

EC-CUBE 4.2をAWS ECS on EC2上で構築し、CloudFrontをCDNとして利...

👍 1 / 👎 0 2025年10月12日
商品カテゴリ・一覧・検索 機能不動作 EC-CUBE 4系全般
カテゴリ削除ボタンがグレーアウトして削除できない場合の対処法

EC-CUBEの商品管理でカテゴリ管理画面を開いた際に、削除したいカテゴリの削除ボタン(×)がグレー...

👍 0 / 👎 0 2025年10月12日
ログイン・ログアウト 機能不動作 EC-CUBE 4系全般
ログアウト時のリダイレクト先をカスタマイズする方法(security.yaml)

EC-CUBE 4系において、ログアウトボタンを押した際にトップページではなく、特定のページにリダイ...

👍 0 / 👎 0 2025年09月23日

EC-CUBE 4系全般 の関連記事

商品 データ不整合 EC-CUBE 4系全般
EC-CUBEで取り扱い終了商品の削除ができない理由と対応方法

EC-CUBEでは、取り扱いを終了した商品を削除したい場合に、削除ができない状態になることがあります...

👍 1 / 👎 0 2025年10月12日
インストール・セットアップ EC-CUBE 4系全般 設定変更
EC-CUBEサイトのドメイン変更時の設定変更方法

EC-CUBEで構築したサイトを新しいドメインで公開する際に、どのような設定変更が必要かわからない場...

👍 0 / 👎 0 2025年10月12日
メール通知 通知/コミュニケーション EC-CUBE 4系全般
メール件名のショップ名を英語表記に変更する方法

EC-CUBE 4系で、メール件名の先頭に自動挿入される店舗名を英語表記に変更したい場合があります。...

👍 0 / 👎 0 2025年10月12日
フロント共通 機能不動作 EC-CUBE 4系全般
CloudFrontを利用時にリンクのドメインがEC2のパブリックDNSになってしまう問題の解決方法

EC-CUBE 4.2をAWS ECS on EC2上で構築し、CloudFrontをCDNとして利...

👍 1 / 👎 0 2025年10月12日
サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日

設定変更 の関連記事

インストール・セットアップ EC-CUBE 4系全般 設定変更
EC-CUBEサイトのドメイン変更時の設定変更方法

EC-CUBEで構築したサイトを新しいドメインで公開する際に、どのような設定変更が必要かわからない場...

👍 0 / 👎 0 2025年10月12日
フロント共通 機能不動作 EC-CUBE 4系全般
CloudFrontを利用時にリンクのドメインがEC2のパブリックDNSになってしまう問題の解決方法

EC-CUBE 4.2をAWS ECS on EC2上で構築し、CloudFrontをCDNとして利...

👍 1 / 👎 0 2025年10月12日
サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日
管理画面共通 パフォーマンス劣化 EC-CUBE 4系全般
EC-CUBEのlogフォルダ肥大化の管理方法

var/log/prodフォルダ内のログファイルが肥大化し、ディスク容量を圧迫している状況が発生しま...

👍 1 / 👎 0 2025年10月12日
メール通知 メール送信不具合 EC-CUBE 4.2系 / Symfony 5.4
XServerでのメール送信設定における環境変数設定エラーの解消方法

XServerでメール送信を行う際に、MAILER_URL環境変数を設定してもメールが送信されない問...

👍 0 / 👎 0 2025年10月12日