ショップをすべてSSLにした場合のダウンロードについて

困った時はこちらで質問してください。回答を担当する人は特に決まっていませんので、分かる方は回答をお願いします。
アバター
maron
記事: 20
登録日時: 2008/2/19 21:41

ショップをすべてSSLにした場合のダウンロードについて

投稿記事by maron » 2008/2/19 22:45

初めて投稿します。
現在v1.3.0.2-l10n-jp-2を使って販売サイトを構築中の初心者です。
共有SSLを使用しているため、configureの設定で
CatalogエリアをすべてをSSLに設定しています。

ところが、この方法だと
http://zen-cart.jp/bbs/viewtopic.php?t= ... 1%BC%A5%C9
の書込みのとおり、
ユーザーがダウンロード商品をダウンロードすると
以下のエラーが発生します

「要求されたサイトが見つからないか、使用できません」

ダウンロードファイルが非SSLサーバーにあるにもかかわらず、
ダウンロードページからは、SSLサーバーにリンクされてるいることが
原因のようです。

configureを元に戻せば、ダウンロードできるようになりますが、
可能ならば、CatalogエリアをすべてをSSLにしたままで、
ダウンロードできるようにしたいと思います。
対処法があれば教えてください。
よろしくお願いします。
[/url]
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2008/2/19 23:33

木下です。

ダウンロードの時のURLは
includes/configure.php で

コード: 全て選択

  define('DIR_WS_DOWNLOAD_PUBLIC', DIR_WS_CATALOG . 'pub/');

この様に定義されているので

コード: 全て選択

  define('DIR_WS_DOWNLOAD_PUBLIC', 'http://xxxx.xx/pub/');


とすれば上手く行きませんか?

コード: 全て選択

  define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
  define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');

こちらも同様に非SSLの領域のフルパスを記述する必要があるかな。
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
maron
記事: 20
登録日時: 2008/2/19 21:41

投稿記事by maron » 2008/2/20 01:04

木下様

返信本当にありがとうございます。
アドバイスを実行した結果をご報告します。

includes/configure.php の

コード: 全て選択

define('DIR_WS_DOWNLOAD_PUBLIC', DIR_WS_CATALOG . 'pub/');


に非SSLフルパスを記述してみましたが、変化ありませんでした。


また、

コード: 全て選択

 define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
 define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');


に非SSLフルパスを記述すると、「ダウンロードディレクトリが存在しません」の
エラーになり、存在しないディレクトリとして

’物理フルパス/記述した非SSLのフルパス’

が表示されました。

もう少し試行錯誤してみます。[/code]
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2008/2/20 07:22

木下です。

コード: 全て選択

define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');



コード: 全て選択

define('DIR_FS_DOWNLOAD',  '/home/アカウント名/public_html/download/');
define('DIR_FS_DOWNLOAD_PUBLIC', '/home/アカウント名/public_html/pub/');


のようにそれ自体がフルパスに設定するので前に物理フルパスが追加される
はずは無いのですが…
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
maron
記事: 20
登録日時: 2008/2/19 21:41

投稿記事by maron » 2008/2/20 16:24

木下様

アドバイス大変ありがとうございます。

コード: 全て選択

define('DIR_FS_DOWNLOAD',  '/home/アカウント名/public_html/download/');
define('DIR_FS_DOWNLOAD_PUBLIC', '/home/アカウント名/public_html/pub/');

に設定しても、「ダウンロード商品ディレクトリが存在しません」エラーになり
  
  物理フルパス/記述したフルパス

が表示されてしまいます。いろいろと試行錯誤してみましたが
物理フルパスは消えませんでした。

ところで、自分がやりたいことは、CatalogエリアをすべてSSL(ログインからログアウトまですべてSSL)に
したうえで、正常にダウンロードができるようにすることです。

現在、すべてSSLにするため、configureを以下のようにしています。

コード: 全て選択

define('HTTP_SERVER', 'https://共有SSL');
define('HTTPS_SERVER', 'https://共有SSL');

これが、ダウンロードエラーの原因なんでしょうか?もし、そうならば

コード: 全て選択

define('HTTP_SERVER', 'https://共有SSL');


コード: 全て選択

define('HTTP_SERVER', 'http://自分のドメイン');

に戻した状態で、CatalogエリアをすべてSSLにできれば良いような気がします。
それは可能なのでしょうか?
もし、可能ならばその方法を教えていただれば幸いです。
アバター
きたきつね
記事: 147
登録日時: 2007/11/02 08:58

投稿記事by きたきつね » 2008/2/21 15:39

なんとなく
http://support.microsoft.com/kb/323308/ja
のような気もします。
ダウンロードを試しているブラウザがIEなら他のブラウザで試してみてください。
もし、他のブラウザでダウンロードできるのであれば

\includes\modules\pages\download\header_php.php
の119行目(行数は違う可能性があります)に
header("Cache-Control: no-cache, must-revalidate");
の記述がありますので、それをコメントアウトしてIEでダウンロードできたらURLの問題だと思います。

未検証ですので確信はありません :cry:
アバター
maron
記事: 20
登録日時: 2008/2/19 21:41

投稿記事by maron » 2008/2/21 17:38

きたきつつねさん

返信大変ありがとうございます。
ME以外のブラウザーが今無いので、これは後ほど検証してみます。

なお、\includes\modules\pages\download\header_php.php の

コード: 全て選択

header("Cache-Control: no-cache, must-revalidate");

をコメントアウトしてダウンロードすると、エラーメッセージは消えますが、
真っ白な画面になりダウンロードできません。
この現象は、Catalog内をべてSSLした場合でも、デフォルトの場合でも発生します。

取り急ぎご報告まで。
アバター
maron
記事: 20
登録日時: 2008/2/19 21:41

別の方法で対応しました

投稿記事by maron » 2008/2/22 12:51

皆様、いろいろとアドバイスありがとうございます。
ショップ内をすべてSSLにしたかったのは共有SSL環境で
クッキーを使用したかったためです。
ショップ内をすべてSSLにするのはやめて、
以下の方法でクッキーを使用できるようにしました。

http://zen-cart.jp/bbs/viewtopic.php?p= ... F3ID#13037

を参考に、

includes/functions/html_outpu.php の
// clean up the link before processing
の手前に

コード: 全て選択

//Add the session ID when moving from HTTP to HTTPS server
if ( ($http_domain != $https_domain) && (SESSION_FORCE_COOKIE_USE == 'True') &&
($connection == 'SSL')) {
$sid = zen_session_name() . '=' . zen_session_id();
}

を追加し、

configure:デフォルト
クッキー利用を必須にする: True
SSLセッションIDチェック :True

に設定しました。

また、

includes/templates/マイテンプレート/common/tpl_header.phpの

コード: 全て選択

<a href="<?php echo zen_href_link(FILENAME_SHOPPING_CART, '', 'NONSSL'); ?>"><?php echo HEADER_TITLE_CART_CONTENTS; ?></a>&nbsp;|&nbsp;<a href="<?php echo zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'); ?>"><?php echo HEADER_TITLE_CHECKOUT; ?>&raquo;</a>


のNONSSLをSSLに修正しました。

これで今のところ、SSL⇔NONSSLの移動もダウンロードも正常で、
ログインやカートの中身が消えたり、支払いページがエラーになったりすることもなく
すべて問題なく稼動しています。
ちなみにサーバーはチカッパ、 Zen Cartのバージョンはv1.3.0.2-l10n-jp-2です。

“Zen Cart 質問コーナー” へ戻る