現在、下記のような構成でEC-CUBE3を動かしている。

【本番環境】
環境:さくらVPS
OS:CentOS7

【テスト環境】
環境:Vagrant
OS:CentOS7

ファイル構成は、本番環境とローカル環境(Vagrant)で同期させており、htaccessファイルに記述している「http -> https」の転送設定のせいで、SSLの設定がされていないテスト環境にアクセスする度にブラウザの警告が表示されて非常に使いづらい。

そこで、Vagrantのテスト環境ではhtaccessファイルは残しつつも、無効化し「http」接続ができるようにしてみた。

httpd.confでhtaccessを無効化

まずVagrantのCentOS7にSSHでログインし、/etc/httpd/conf/httpd.confを開き下記のとおり設定を変更する。

# <Directory "/var/www/html">内
AllowOverride All
↓
AllowOverride None

これでhtaccessファイルが無効化された。

ただしこれだけではEC-CUBE3のルーティングも無効化されてしまうので、次の設定を行う。

httpd.confに設定を追記

元々htaccessに記述していた設定を、httpd.confのバーチャルホストに記述する。

<VirtualHost *:80>
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        RewriteEngine On
        Options +FollowSymlinks

        # 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]
    </Directory>

</VirtualHost>

ここまで出来たらApacheを再起動。

systemctl restart httpd

これでVagrantのテスト環境で「http」接続ができ、ルーティングも適切に行われ各ページへのアクセスもできるようになった。