ec-cube

レンタルサーバー、さくらインターネット(スタンダードプラン)の環境下にEC-CUBEバージョン3をインストールする際に苦労したことと解決策をご紹介します。
今回はさくらインターネットのクイックインストールでなく、FTPからの手動インストールです。

そもそもインストール後に管理画面が表示されない

インストール完了画面にて「管理画面へ」リンクがあるのにクリックするとエラーになりました。
えっ!という感情のままいろいろと探したら解決策がありました。
インストール時に設定した管理画面ディレクトリの前に「/index.php/」を追記したURLにアクセスしてください。
例)
http://shop.kopjapan.com/html/admin
これを、
http://shop.kopjapan.com/html/index.php/admin
このようにするとアクセスできます。
というか最初からリンクでこっちに飛ばしてくれや。

普通にインストールするとURLに「/html」が付く

せっかくドメインを指定してインストールしたのにトップページURLに「/html」がついてしまいます。
例)
http://shop.kopjapan.com/index.php
ではなく、
http://shop.kopjapan.com/html/index.php
となってしまう。

こちらの解決策は多々あるようですが、現在(2016.11)公式サイトにて配布されているバージョン(EC-CUBE 3.0.11 以降)では、公式の回避策が公開されております。
※インストール前に行う作業です。
インストール時にURLからhtmlを無くす手順

上記の方法で「/html」は解決です。

URLに「index.php」をつけないとエラーになってしまう

最後まで手こずったのがこちらです。
URLから「html」も省くことが出来て正規のURLでアクセスできると思いきや「index.php」が表示されてしまう。
「index.php」なしでアクセスするとエラー。
htaccessも公式サイトの指示通りにやったのにどういうこっちゃと思い色々と調べてみてやっと解決策を得ました。

下は、公式サイトの手順で「.htaccess.sample」をリネームした「.htaccess」の中身。ここに細工します。

DirectoryIndex index.php index.html .ht

<FilesMatch "^composer|^autoload|^cli-config|^COPYING|\.(ini|lock|dist|git|sh|bak|swp)$">
    order allow,deny
    deny from all
</FilesMatch>

<Files ~ "index.php|index_dev.php">
    order deny,allow
    allow from all
</Files>

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Authorization ヘッダが取得できない環境への対応
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpe?g|css|ico|js|svg)$ [NC]
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

こちらの「RewriteEngine On」の下に「RewriteBase /」を追記します。

    RewriteEngine On
    RewriteBase /

    # Authorization ヘッダが取得できない環境への対応
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpe?g|css|ico|js|svg)$ [NC]
    RewriteRule ^(.*)$ index.php [QSA,L]

これでやっとURLから「html」も「index.php」も消えました。

EC-CUBEはWordPressに比べて、問題解決の情報を探すのが大変ですね。