レンタルサーバでEC-CUBE3のURLにhtmlを付けさせない方法
以前にEC-CUBE3をレンタルサーバにインストールする際のURLの設定の仕方について以下の記事を書きました。
通常ec-cubeをそのままインストールすると http://hogehoge.com/html/ とhtmlがurlについてしまいます。
その回避方法として上記記事を作成したのですが、 この記事内ではファイルを移動したりと結構面倒なことをしていたため、 .htaccessを使って対処できないかなと思い、 .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の行を消して対応可能かどうか試して頂ければと思います。