12/12 いただいたメッセージへのご返信はこちら

ECCUBE4 下層ディレクトリのhtaccessでURLのhttps、wwwあり・なしを統一する方法

ドメインのルートディレクトリではなく、下層ディレクトリに設置したECCUBE4で「https・wwwなし」に統一する際に、少し苦労したので解決方法を書いておきます。

「wwwあり」に統一する方法についても記載しています。

当初、自分が制作した他のサイトのhtaccessから「https・wwwなし」に統一する部分をコピーして使おうとしたのですが、500エラーが出て動きませんでした。

これは、ルートディレクトリ用の記述を下層ディレクトリのhtaccessでそのまま使おうとしたのと、ECCUBE独自の仕様が原因でした。

httpsに統一する

httpsに統一する場合、ECCUBE4であればhtaccessよりも管理画面から設定する方が手っ取り早いのでおすすめです。

ECCUBE4の管理画面にログインし「設定」→「システム設定」→「セキュリティ管理」をクリック。

「SSLを強制」にチェックを入れて「登録」ボタンを押せば、URLがhttpsに統一されます。

wwwなしに統一する

「sample.com」ドメインの「store」フォルダに設置されたECCUBE4のURLをwwwなしに統一する際の設定は以下のようになります。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} www\.sample\.com$
RewriteRule ^(.*)$ https://sample.com/store/$1 [R=301,L]
</IfModule>

重要なのは、下層ディレクトリ(この場合/store)のhtaccessの一番上に、上のコードを記載する事です。

もしhtaccessの末尾などに上のコードを入れると、ECCUBE4独自のURL処理などが一通り終わった後に上のコードが走ってしまうため、500エラーなどが発生します。

wwwありに統一する

wwwありに統一する設定は、以下のようになります。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.sample.com/store/$1 [R=301,L]
</IfModule>

こちらも同様に、htaccessの一番上にコードを設置します。
この記事を書いた人
せみやま せみやま
生き物が大好きなWebエンジニアです。
身近な自然を楽しみながら暮らしています。

生き物とサブカルのポッドキャスト「セミラジオ」を配信中です!

詳細なプロフィール