サブディレクトリにインストールしたEC-CUBE4をルートディレクトリ(ドメイン直下)で表示させる方法

サブディレクトリにインストールしたEC-CUBE4をルートディレクトリ(ドメイン直下)で表示させる方法

サブディレクトリにインストールしたEC-CUBE4をルートディレクトリ(ドメイン直下)で表示させる方法

サブディレクトリにインストールしたEC-CUBEをルートディレクトリで表示させる方法をご紹介いたします。

例えば、「example.com/eccube_dir」にインストールしたEC-CUBEを「example.com」で表示するように、表示URLを変更します。

検証した環境

今回検証した環境は以下の通りです。

  • EC-CUBE:4.1.2
  • サーバー:エックスサーバー
  • PHP:7.4.28
  • MySQL:5.7.27
  • インストール先フォルダ:eccube_dir
  • 表示URL:https://example.com

サブディレクトリにインストールしたEC-CUBEをルートディレクトリで表示させる方法

ステップ1. ルートディレクトリの.htaccessの編集

ルートディレクトリ内の.htaccessに以下を追加します。”eccube_dir”の部分はEC-CUBEのインストールディレクトリです。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteRule (.*) /eccube_dir/$1 [L]
</IfModule>

ステップ2. インストールディレクトリ直下の.htaccessの編集

EC-CUBEをインストールしたフォルダ(eccube_dir)直下にある.htaccessを編集します。「RewriteEngine On」のすぐ下に以下を追加します。

※”eccube_dir”はインストールディレクトリ、”example.com”はドメインです。適宜変更してください。

RewriteEngine On

RewriteCond %{THE_REQUEST} ^.*/eccube_dir/
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

ステップ3. インストールディレクトリ直下の.envの編集

EC-CUBEのインストールディレクトリ直下にある.envを編集します。「ECCUBE_COOKIE_PATH=/【インストールディレクトリ】」という記述があるので(今回の場合はECCUBE_COOKIE_PATH=/eccube_dir)、以下のように変更します。

ECCUBE_COOKIE_PATH=/

これで完了です。「example.com」にアクセスするとEC-CUBEサイトが表示されるようになります。「example.com/eccube_dir」配下へのアクセスは「example.com」にリダイレクトされます(管理画面も同様です)。

リダイレクトされない場合は、ブラウザのキャッシュクリアで改善するはずです。また、表示で問題が出た場合は、/var/cache/prodフォルダ内を削除してEC-CUBEのキャッシュをクリアしてみてください。

注意点

管理画面のURL内に使われている文字列をインストールディレクトリにしてしまうと、リダイレクトループが発生して設定画面にアクセスできなくなってしまいます。

例えば、インストールディレクトリを”shop”にすると、支払方法や配送方法は「/setting/shop/」以下が設定画面になっているので、リダイレクトループが発生してしまいます。

あとがき

WordPressではよくやりますが、EC-CUBEでもBasic認証をかけたサブディレクトリでテスト実装して、実装完了したら表示URLを変更して本公開、みたいな流れで制作することがあります。

覚えておくと役立つケースは結構あると思うので、ぜひ参考にしていただければ幸いです。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です