Re: [解決済み] 「カート」画面に遷移しても、共用SSL接続になりません
フォーラム › 使い方全般 › [解決済み] 「カート」画面に遷移しても、共用SSL接続になりません › Re: [解決済み] 「カート」画面に遷移しても、共用SSL接続になりません
こんにちは。
remove_filter(‘template_redirect’, ‘redirect_canonical’);
は、function.php ではなく、テーマのfunctions.php で動作すると思います。
WordPress の改変はしない方が良いですね。
さて、canonical.php ですが、セキュリティー関係ではないので無くても動作に支障はありませんが、このファイルのコメントにもあります通りSEO に関係してくるようです。WordPress がSEO に有効と言われますが、ここもその一部だと思います。ショップを構築する上では外したくないところですね。
では何故そちらのサーバーでリダイレクトが発生するのかと言うところですが、環境変数の隠蔽が関係しているのではないかと推測しています。
日本のサーバーに良く見られるのですが、SSL を通したリクエストに対してポート番号などを隠しているようです。これは初心者向けのサーバーには有効かもしれませんが、上級者向けのサーバーとしてはお勧めできません。
ちゃんとしたショップを構築するのであれば、ちゃんとしたサーバーを選ぶ事が大切だと思います。
現在お使いのサーバーが環境変数を隠しているかどうかを確認する事ができます。以下のコードをfooter.php テンプレートのwp_footer() の下に追加してみてください。
<?php echo 'HTTPS : ' . print_r($_SERVER['HTTPS'], true); ?><br />
<?php echo 'PORT : ' . print_r($_SERVER['SERVER_PORT'], true); ?><br />
<?php echo 'POST : ' . (( isset($_POST) && count($_POST) ) ? 'OK' : ''); ?><br />
これにより、カートページの左下に次のように見えれば問題無しです。
HTTPS とPORT の両方が見えない状態ですとSSL をうまく制御できないと言う事になります。
HTTPS : on
PORT : 443
POST : OK
最後のPOST と言うのは念のために置きました。普通は’OK’となります。
canonical.php は$_POST が有った場合は処理を行なわないようになっています。
実はカートページには$_POST が存在するので本来canonical.php は何も処理しないはずですが、mizuya さんのご報告でcanonical.php のrequire を削除で動作したとありましたので確認のため置きました。
一度ご確認ください。