読者です 読者をやめる 読者になる 読者になる

レンタルサーバでEC-CUBE3のURLにhtmlを付けさせない方法

EC-CUBE3 PHP

以前にEC-CUBE3をレンタルサーバにインストールする際のURLの設定の仕方について以下の記事を書きました。

amidaike.hatenablog.com

通常ec-cubeをそのままインストールすると http://hogehoge.com/html/ とhtmlがurlについてしまいます。

その回避方法として上記記事を作成したのですが、 この記事内ではファイルを移動したりと結構面倒なことをしていたため、 .htaccessを使って対処できないかなと思い、 .htaccessを以下のようにごにょごにょと対応してみました。

ec-cube直下の.htaccessに現状

order allow,deny
deny from all

と記述されている内容を

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

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

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /html/

    RewriteRule ^user_data/(.*)$ /html/user_data/$1 [QSA,L]

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

</IfModule>

に変更します。 その後、

app/config/eccube/path.yml

にあるroot_urlpath を

root_urlpath:

に修正すればhtmlがなくてもhttp://hogehoge.comだけでアクセス出来るようになります。

これで問題なく動作できるかどうか試していただけると助かります。 こちらはApache2.4未満の方を対象にしていますので、Apache2.4以上またはApache以外をお使いの方は別途対応できればと思います。

ただしこちらの対処だけではまだ不充分であり、 srcディレクトリやtestディレクトリvendorディレクトリなどの直下に対して、 appディレクトリ直下に置いてある.htaccessと同じものを置いて制限をかける必要があります。

【追記】
さくらサーバだとOptions +FollowSymlinksが使えないため、Optionsの行を消して対応可能かどうか試して頂ければと思います。