インストール済みのEC-CUBE3のルートディレクトリを変更する方法

この記事では、インストール済みのEC-CUBE3のルートディレクトリを変更する方法を紹介します。

EC-CUBEは、そのままインストールするとルートディレクトリが、「(ドメイン名)/html」になってしまいます。

インストール時にちゃんと設定をしておけば「/html」を消すこともできるのですが、設定を変更せずレンタルサーバーのクイックインストールしてあとでルートディレクトリを変更しようとしたところ、ちょっとハマりやすい場所があったので解決方法をまとめました。

【推奨】インストール時にURLからhtmlをなくす方法

まずは、インストール時にURLからhtmlをなくす方法からです。

最初からやっておくとあとあと楽です。やり方自体は、公式の開発ドキュメントにまとまっているのでそちらを参考にしてみてください。

インストール済みのEC-CUBE3のルートディレクトリを変更する方法

それでは、インストールして開発を初めてしまった人向けの方法です。

EC-CUBE3の設置環境

今回変更を行った環境は、

  • さくらレンタルサーバ(スタンダード)
  • EC-CUBE3(3.0.16)

でした。

1. サーバーコントロールパネルでルートディレクトリを変更

まずさくらレンタルサーバのサーバーコントロールパンルにアクセスし、ルートディレクトリを変更します。

  1. サイドパネルの下にあるドメイン設定>ドメイン/SSLをクリックします。
  2. EC-CUBE3を入れたドメインの変更ボタンをクリックします。
  3. 「2. マルチドメインの対象のフォルダをご指定ください」で、指定フォルダを「/home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/」に設定して、送信ボタンを押します。

これだけで終わればいいのですが、上手く動かないのでEC-CUBE3のファイルを2箇所変更します。

2. (EC-CUBE3の入ってるフォルダ名)/htmlの中の.htaccessを修正

(EC-CUBE3の入ってるフォルダ名)/htmlの中の.htaccessを修正します。

SetEnvIf REDIRECT_HTTPS (.+) HTTPS=$1
order deny,allow
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / # /(EC-CUBE3の入ってるフォルダ名)/htmlから変更
# Authorization ヘッダが取得できない環境への対応
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpe?g|css|ico|js|svg)$ [NC]
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
view raw .htaccess hosted with ❤ by GitHub

【変更前】RewriteBase /(EC-CUBE3の入ってるフォルダ名)/html

【変更後】RewriteBase /

に書き換えました。

3. (EC-CUBE3の入ってるフォルダ名)/app/config/eccube/path.ymlを修正

(EC-CUBE3の入ってるフォルダ名)/app/config/eccube/path.ymlを修正します。

# duplicated
root: / # root_urlpath
admin_dir: admin/ # admin_route
tpl: /user_data/packages/default/ # front_urlpath
admin_tpl: /user_data/packages/admin/ # admin_urlpath
image_path: /upload/save_image/ # image_save_urlpath
# base valiables
root_dir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)
root_urlpath: /
template_code: default
# routing
admin_route:
user_data_route: user_data
# public directory
public_path: /html
public_path_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html
# realdir::image
image_save_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/upload/save_image
image_temp_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/upload/temp_image
# realdir::user_data
user_data_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/user_data
# realdir::block
block_default_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/src/Eccube/Resource/template/default/Block
block_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/app/template/default/Block
# realdir::template
template_default_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/src/Eccube/Resource/template/default
template_default_html_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/template/default
template_admin_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/src/Eccube/Resource/template/admin
template_admin_html_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/template/admin
template_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/app/template/default
template_html_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/template/default
template_temp_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/app/cache/eccube/template
# realdir::csv
csv_temp_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/app/cache/eccube/csv
# realdir:plugin
plugin_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/app/Plugin
plugin_temp_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/app/cache/plugin
plugin_html_realdir: /home/(ドメイン名)/www/(EC-CUBE3の入ってるフォルダ名)/html/plugin
# urlpath
admin_urlpath: /template/admin
front_urlpath: /template/default
image_save_urlpath: /upload/save_image
image_temp_urlpath: /upload/temp_image
user_data_urlpath: /user_data
plugin_urlpath: /plugin
view raw path.yml hosted with ❤ by GitHub

上の方のルートパスと下の方のURLパス辺りを書き換えました。

これで表示もシステムもプラグインもちゃんと動くようになりました。

まとめ

この記事では、インストール済みのEC-CUBE3のルートディレクトリを変更する方法を紹介しました。

ルートディレクトリの変更は思わぬところでハマったりするので、できたらインストール時に設定しておくことおすすめします。