質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

解決済

1回答

877閲覧

【EC-CUBE3】特定のページのみhttpでのアクセスを許可するリダイレクト

mst0

総合スコア9

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

0クリップ

投稿2021/05/11 05:20

前提・実現したいこと

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]

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

管理画面への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

お手数をおかけいたしますが宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki84web

2021/05/11 11:15

EC-CUBE側に強制httpsみたいな設定がないですか?
mst0

2021/05/19 05:24

管理画面上のSSLを矯正する項目のチェックを解除し、少し時間をおいたところ解決できました。
yuki84web

2021/05/19 06:16

解決できたようで良かったです。自己解決で回答を記載して質問はクローズお願いします。
guest

回答1

0

自己解決

管理画面上のSSLを矯正する項目のチェックを解除し、少し時間をおいたところ解決できました。

投稿2021/05/19 06:17

mst0

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問