サブディレクトリにインストールしたEC-CUBEをルートで表示したい

サブディレクトリ(例:root\ec)にインストールしたEC-CUBE(例:https://example.com/ec)をルート(例:https://example.com)で表示するやり方

こんな方向け

  • レンタルサーバーの仕様で勝手にサブディレクトリを作られた
  • 別のCMSも構築した際に管理しやすくしたい
  • 単純にルートディレクトリがゴチャつくのが嫌だ

準備

任意のサブディレクトリを作成し、WordPressをインストールしてください。

手順

以下のようなディレクトリ構成を想定しています。

root
 ├ .htaccess
 └ ec
    ├ .env
    ├ .htaccess
    └ ...

ルート直下の.htaccessの作成

※ すでにある場合は追記・変更
※ ディレクトリ名(ec)のところはそれぞれの環境に合わせて修正してください。

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

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

ECCUBE_COOKIE_PATHをインストールディレクトリからルートディレクトリへ修正

※ ディレクトリ名(ec)のところはそれぞれの環境に合わせて修正してください。

...
# ECCUBE_COOKIE_PATH=/ec
ECCUBE_COOKIE_PATH=/
...

インストールディレクトリ直下の.htaccessに追記

RewriteEngine On のすぐ後に以下を追記

※ ディレクトリ名(ec)のところはそれぞれの環境に合わせて修正してください。

RewriteEngine On

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