バージョン選択

フォーラム

メニュー

オンライン状況

91 人のユーザが現在オンラインです。 (86 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 91
もっと...

サイト内検索

質問 > その他 > 特定のSSL領域にアクセスした時にNot Foundになる

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
daidou
投稿日時: 2008/7/11 13:26
対応状況: −−−
半人前
登録日: 2008/5/30
居住地:
投稿: 15
特定のSSL領域にアクセスした時にNot Foundになる
特定の条件のもと特定のSSL領域にアクセスするとNotFoundになる現象が解決できずに困っているので書き込みさせて頂きます。

以前に別スレで書かせて頂いたのですが、スレを立てた時は私のサーバ独自のものかと思っていたのですが、調べるにあたり異なる環境でも起こりそうだったので別スレを立てさせてもらいました。

■環境
サーバ:ファーストサーバ ギガント2
ECCUBE:2.1.2
PHP  :5.2.6
MYSQL :MySQL 5.0.27-standard

非SSL領域:/virtual/www/
 SSL領域:/virtual/ssl/
 ⇒非SSL領域と同じファイルを設置
 CGI領域:/virtual/cgi-data/

install.phpファイル
<?php
define ('ECCUBE_INSTALL', 'ON');
define ('HTML_PATH', '/virtual/www/');
define ('SITE_URL', 'http://ドメイン/');
define ('SSL_URL', 'https://ドメイン/');
define ('URL_DIR', '/');
define ('DOMAIN_NAME', '');
define ('DB_TYPE', 'mysql');
define ('DB_USER', '☆');
define ('DB_PASSWORD', '☆');
define ('DB_SERVER', ☆');
define ('DB_NAME', '☆');
define ('DB_PORT', '');
define ('DATA_PATH', '/virtual/cgi-data/');
define ('MOBILE_HTML_PATH', HTML_PATH . 'mobile/');
define ('MOBILE_SITE_URL', SITE_URL . 'mobile/');
define ('MOBILE_SSL_URL', SSL_URL . 'mobile/');
define ('MOBILE_URL_DIR', URL_DIR . 'mobile/');
?>


■現象
以下の動作を行うと必ず同じ現象が起こります。
1.商品を購入する(カートはSSL)
2.もう一度トップに戻る
3.商品をもう一度購入する

上の動作を行った時に3で、カーとの中を見て、『購入画面手続きへ』をクリックするとNotFoundになります。

その際の現象としてURLに
https://www.[ドメイン].com/virtual/ssl/shopping/deliv.php?transactionid=[変数]
となります。
【virtual/ssl/】を削除するとうまく動作するのですが、なぜか2回目だけ【virtual/ssl/】が挿入されてしまいます。

■試した改修
・テンプレートファイルを改修
formタグで指定しているリンク先をPHPで吐き出すのではなく、直接テンプレートに書き込みました。

・data\class\pages\frontparts\LC_Page_FrontParts_LoginCheck.phpを改修
以下の通り行いましたがダメでした。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=2104&forum=1&post_id=7380#forumpost7380

ずっと解決できずにいるんで、何かご助言いただければ幸いです。

何卒、よろしくお願いします。

■前スレ
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=2440&forum=2&post_id=8917#forumpost8917
kuro
投稿日時: 2008/7/23 22:18
対応状況: −−−
半人前
登録日: 2008/7/23
居住地:
投稿: 20
Re: 特定のSSL領域にアクセスした時にNot Foundになる
こんにちは。時間が経ってしまっているので、もうご覧になってないかもしれませんが・・・
私の環境でも同じことが起こってました。
多分、ssl用のディレクトリが、非ssl用のディレクトリ外に設置されているサーバではそうなるんじゃないかと思います。


■私の環境
サーバ:CPI 共用サーバ
ECCUBE:2.2.0-beta
PHP  :5.2.4
SQL  :PostgreSQL 8.1.10

非SSL領域:/usr/home/ユーザ名/html
 SSL領域:/usr/home/ユーザ名/secure


■対策

・data\class\pages\LC_Page.phpを修正

***245行目付近***

$realPath = realpath(HTML_PATH . substr_replace($path, "", 0, strlen(URL_DIR)));

if(isset($_SERVER['HTTPS'])){
 $realPath = realpath("/usr/home/ユーザ名/secure/" . substr_replace($path, "", 0, strlen(URL_DIR)));
}else{
 $realPath = realpath(HTML_PATH . substr_replace($path, "", 0, strlen(URL_DIR)));
}


***259行目付近***

$htmlPath = rtrim(HTML_PATH, "/");

if(isset($_SERVER['HTTPS'])){
 $htmlPath = rtrim("/usr/home/ユーザ名/secure/", "/");
}else{
 $htmlPath = rtrim(HTML_PATH, "/");
}


※/usr/home/ユーザ名/secure/の部分には、自分のSSL領域のパスを入れました。
非SSLの時もSSLの時も、常に「HTML_PATH」で処理しているので、SSL領域のパスに「HTML_PATH」が含まれてない場合は、パスが一致せず上手く消えてくれないみたいです。
とりあえず私の方ではNot Foundになることはなくなりましたが、もしこのやり方がマズイ、ということがありましたらどなたかご指摘いただけませんでしょうか?
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,648名です
総投稿数は110,158件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1657
8
red
1570
9
mcontact
1323
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.