この記事では、インストール済みのEC-CUBE3のルートディレクトリを変更する方法を紹介します。
EC-CUBEは、そのままインストールするとルートディレクトリが、「(ドメイン名)/html」になってしまいます。
インストール時にちゃんと設定をしておけば「/html」を消すこともできるのですが、設定を変更せずレンタルサーバーのクイックインストールしてあとでルートディレクトリを変更しようとしたところ、ちょっとハマりやすい場所があったので解決方法をまとめました。
目次 [表示]
【推奨】インストール時にURLからhtmlをなくす方法
まずは、インストール時にURLからhtmlをなくす方法からです。
最初からやっておくとあとあと楽です。やり方自体は、公式の開発ドキュメントにまとまっているのでそちらを参考にしてみてください。
インストール済みのEC-CUBE3のルートディレクトリを変更する方法
それでは、インストールして開発を初めてしまった人向けの方法です。
EC-CUBE3の設置環境
今回変更を行った環境は、
- さくらレンタルサーバ(スタンダード)
- EC-CUBE3(3.0.16)
でした。
1. サーバーコントロールパネルでルートディレクトリを変更
まずさくらレンタルサーバのサーバーコントロールパンルにアクセスし、ルートディレクトリを変更します。
- サイドパネルの下にあるドメイン設定>ドメイン/SSLをクリックします。
- EC-CUBE3を入れたドメインの変更ボタンをクリックします。
- 「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> |
【変更前】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 |
上の方のルートパスと下の方のURLパス辺りを書き換えました。
これで表示もシステムもプラグインもちゃんと動くようになりました。
まとめ
この記事では、インストール済みのEC-CUBE3のルートディレクトリを変更する方法を紹介しました。
ルートディレクトリの変更は思わぬところでハマったりするので、できたらインストール時に設定しておくことおすすめします。