※この方法では、カート > 購入のところで、動きませんでした。

設計上、同じ処理になってないんでしょうね・・・
残念です。

 

今回、SSLが別ディレクトリー運用できない
GMOの腐ったサーバーだったので、

仕方なく、サブディレクトリで運用。

でも、URLが、不格好・・・

 

で、いろいろ、試してみた。
※実際には、サブディレクトリ「eccube」にあるものとする

> /data/config/config.php

  • define(‘HTTP_URL’, ‘https://shoroji.com/’);
  • define(‘HTTPS_URL’, ‘https://shoroji.com/’);
  • define(‘ROOT_URLPATH’, ‘/’);

と設定した場合、リンク先は、すべてルートを見に行くが、
ファイルが存在しないので、表示がされないので、

.htaccessでリダイレクトしてやる。

  • RewriteCond %{REQUEST_FILENAME} !-f
  • RewriteCond %{REQUEST_FILENAME} !-d
  • RewriteRule ^.*$ /eccube%{REQUEST_URI} [L]

ま、これは、わけないが、
実際には、外郭のテンプレートは表示されるものの、
メインであるボディーが表示されない。

エラーをみると、

問題点は、.tplの前がなく、
つまり、テンプレートファイルが見つからないというエラー。

 

/eccube/にインストールしている場合、
通常であれば、

  • $_SERVER[‘SCRIPT_NAME’] = /eccube/index.php
  • ROOT_URLPATH = /eccube/

となるので、
結果として、「index.php」が取り出されるのだけど、

今回、ルートで運用したいので、ROOT_URLPATH = /
としているため、処理がうまく出来ていない。

 

では、どうしたらいいか?

というと、
その書き換えをしている「SC_Helper_Pagelayout.php」を修正します。

実際には、function getPageProperties に与えられる、
第4パラメーター「$arrParams」に、
/eccube/index.php のまま渡されてくるので、これを、書き換えてやります。

 

↓を、「SC_Helper_Pagelayout_ex.php」(拡張クラス)に、追加。

大事な部分は、 begin~endの

LC_Page.php [102行目]で、
$_SERVER[‘SCRIPT_NAME’]が第4パラメーターに渡され、
SC_Helper_PageLayout.php [50行目]で、
ROOT_URLPATH を置換して、

dtb_pagelayout上のテンプレート名を
引っ張ってきているという流れなので、

 

ROOT_URLPATHを、Eccube上関係ない定数
「ROOT_URLPATH_redirect」に置き換えて、URLを補正した次第です。

 

※ROOT_URLPATH_redirectは、環境によって異なるだろうから、
/data/config/config.phpで、定義しています。

  • define(‘ROOT_URLPATH_redirect’, ‘/eccube/’);

以上。

しかし、

ずいぶん、Eccube通になってきたww

PS.
答えじゃなくて、ヒントになる程度に、書いてます。
見る人が見たら、答えなんだけどw

.

サブディレクトリのEccubeを、.htaccessでトップにダイレクト
Tagged on: