だ。ログ。

開発とかスノボとかやきうとか。

さくらインターネットのクイックインストールでEC-CUBE3をインストールする

URLのトップを公開ディレクトリにする方法

さくらインターネットレンタルサーバースタンダードプラン以上だとEC-CUBEをクイックインストールする機能が付いている。
ただし、このインストールに癖がありサーバーをレンタル契約した時についてくるオマケURL

例) mogemogeと言うアカウントだと mogemoge.sakura.ne.jp と言う感じ

このオマケURLは公開ディレクトリを変える事が出来ず、契約したサーバーのトップディレクトリから動かす事が出来ない。

前提条件:独自URLを取得している

上記の前提条件の基でDBも出来ていると仮定し、インストールする際の画面
f:id:rider_dice:20170608181356p:plain

赤丸で囲った部分を空欄にする事が出来ない。
その為、インストーラーでインストールした際には必ず作成されたディレクトリになってしまう。
例としてec-cubeと言うディレクトリに作成したとすると

例) http://mogemoge.domain/ec-cube/

がインストーディレクトリとなってしまう。加えてEC-CUBEはこのディレクトリ下の/html/が表示ディレクトリとなるので
ブラウザでアクセスする場合のURLは

http://mogemoge.domain/ec-cube/html/

かっこわるい。




と言う事で、ディレクトリを移動させる事も出来るが.htaccess等を使って変更するよりも手っ取り早いやり方として

管理画面 > mogemoge.domain [変更] > 2. マルチドメインの対象フォルダの入力欄を

/ec-cube/html/

に変更する。
ただし、一つだけ問題が有る部分として、公開ディレクトリを上記に変更いているため
フロントページは正しく見えるが、管理画面が500 internal server errorが表示されてしまう。

/html/直下の.htaccess

order deny,allow
allow from all
<IfModule mod_rewrite.c>
    RewriteEngine On
    #RewriteBase /ec-cube/html/ ←ココを
  RewriteBase /

    # 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-CUBEをインストールをする事が出来ないので
とりあえず、ドメインに紐づくディレクトリ+EC-CUBEをインストールするディレクトリを作りインストールする。
インストールと初期設定が完了した後に、ドメイン側を操作して公開ディレクトリをEC-CUBEの動作するディレクトリに変える事でドメインにアクセスするとページが出るように修正する事が可能です。