前提・実現したいこと
EC-CUBE3系を使用しており、GMOペイメントソリューションにてクレジット決済、コンビニ決済を利用しています。
昨日、サーバーの移動を行った際に下記のようなエラーが発生しました。
発生している問題・エラーメッセージ
上記の決済は正常に行えるのですが、決済が完了した際にGMO側からEC-CUBE側に送信される決済完了通知がエラーで送信されないようです。
エラーレポートのメールは管理者に送信されます。
GMOとサーバー会社に問い合わせたところ、両者から以下のような回答がありました。
●GMOからの回答
SNIが有効になっているため正常に決済完了通知が送信できていない
SNIを無効にできない場合は、GMOから送信する決済完了通知のみhttpで通信できるようにリダイレクト設定を行う必要がある
●サーバー会社からの回答
新サーバーではデフォルトでSNIが有効になっており、無効にすることができないため、SNIを有効にした状態で正常に決済完了レポートが送信されるような方法をGMOに確認してほしい。
そのため、GMOの結果通知プログラムURLはhttpで通信できるように.htaccessを書き換える必要があると思うのですが、
下記のように記述をしても、結果通知プログラムURLを含むサイト全体がhttpsにリダイレクトされてしまう、もしくは、すべてhttpでアクセスできてしまう状態です。
最終的には下記のような状態が実現できればよいのですが、皆様のお知恵をお菓子いただけませんでしょうか。
・GMOの結果通知プログラムURLはhttpでアクセスできる
・上記以外の場合は、管理画面を含め、httpsにリダイレクト
該当のソースコード(.htaccessに記載している内容)
AddHandler php5.6-script .php
order deny,allow
allow from all
<IfModule mod_rewrite.c>
#RewriteCond %{REQUEST_URI} products/detail.php
#RewriteCond %{QUERY_STRING} ^product_id=([0-9]+)
#RewriteRule ^(.*)$ /products/detail/%1? [R=301,L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^products/list.php /products/list [R=301,L]
RewriteRule ^sub/links.php /user_data/links [R=301,L]
RewriteRule ^sub/goods_product03.php /user_data/goods [R=301,L]
RewriteRule ^sub/privacy.php /user_data/privacy [R=301,L]
RewriteRule ^sub/company.php /user_data/company [R=301,L]
</IfModule>#403 Forbidden対応方法 #ページアクセスできない時シンボリックリンクが有効になっていない可能性あります、 #オプションを追加してください #Options +FollowSymLinks +SymLinksIfOwnerMatch RewriteEngine On # Authorization ヘッダが取得できない環境への対応 #RewriteCond %{HTTP:Authorization} ^(.*) #RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] # さくらのレンタルサーバでサイトへのアクセスをSSL経由に制限する場合の対応 # RewriteCond %{HTTP:x-sakura-forwarded-for} !^$ # RewriteRule ^(.*) - [E=HTTPS:on] RewriteCond %{REQUEST_URI} !gmo_payment_recv RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{REQUEST_URI} !gmo_payment_recv 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] RewriteCond %{REQUEST_URI} gmo_payment_recv RewriteRule ^(.*)$ http://www.mhank.jp/shopping/gmo_payment_recv [QSA,L] #RewriteCond %{HTTPS} on #RewriteRule ^/shopping/gmo_payment_recv/?$ http://www.mhank.jp/shopping/gmo_payment_recv/? [L,R=301]
管理画面へのBasic認証サンプル(※Apache2.2用)
Satisfy Any
AuthType Basic
AuthName "Please enter username and password"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
require valid-user
SetEnvIf Request_URI "^/admin" admin_path # ^/adminは, 管理画面URLに応じて変更してください
Order Allow,Deny
Allow from all
Deny from env=admin_path
php_value upload_max_filesize 100M
お手数をおかけいたしますが宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー