現在、下記のような構成で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」接続ができ、ルーティングも適切に行われ各ページへのアクセスもできるようになった。