Edited at

EC-CUBE 2.13 で、トップページだけはドメイン直下でアクセスできるようにする

More than 3 years have passed since last update.


動機

html/ の中に data/ を入れるのが気持ち悪かった。

ネットに散見されるこの手のハック、そのままhtmlをドキュメントルートに持って行くという対処が多かった。

が、ロジック部とデザイン部が別れてないの、不安じゃありません?

ちゃんとMVWの概念に従って、この辺は別れていて欲しいと想い、色々頭をひねってみた。



そもEC-CUBEがMVWになってないという意見は言うもんじゃあない


前提


  • URL欄にドメイン叩けばトップページが閲覧できる環境にしたい。/html/を付与したくない。

  • トップページ以外は/html/が付与されていても問題なし。

  • サーバで.htaccessが書ける。mod_rewriteがある程度使える。


実装

インストール後、編集するファイルは2つ。


  1. ドキュメントルートの.htaccess

  2. data/config/config.php


.htaccess

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/html/.*$
RewriteRule ^(.*)$ /html/$1
</IfModule>


data/config/config.php

define('ROOT_URLPATH', '/');

define('HTTP_URL', 'http://{ドメイン}/');
define('HTTP_URL', 'http://{ドメイン}/');

define('ROOT_URLPATH', '/html/');
define('HTTP_URL', 'http://{ドメイン}/html/');
define('HTTP_URL', 'http://{ドメイン}/html/');


雑感

実は.htaccessだけでも対応可能なんだと思うけれど、config.php側で制御してあげた方が問題起きづらいのかなーとも。

実はまだモヤッとしてる部分があるので、ご意見頂ければ幸い。