2017-03-09 4 views
0

ユーザーがログインしていない、または他の状態(チェックアウトビューでカートが空ではない)の場合、私は彼を他の場所にリダイレクトします。 Google Chromeはリダイレクトをキャッシュします。クロムがヘッダーのリダイレクトをキャッシュしないようにする

例:カートが空のためにユーザーがチェックアウトにリダイレクトした場合、次回はカートがいっぱいになっても再度リダイレクトされます。その問題は、手動でChromeの設定に行き、キャッシュと閲覧履歴をクリアした後に解決されます。

私の方法:メソッドを呼び出す

public static function redirect($url, $statusCode = 302, $cacheHeader = true) 
{ 
    if($cacheHeader === false) { 
     header("Cache-Control: no-cache, must-revalidate"); 
    } 

    header('Location: ' . $url, true, $statusCode); 
    exit(); 
} 

は:

EkerbaseUtilities::redirect(Ekerbase::getRoot() . '#showcart', 307, false); 

私はすべてが同じ結果を持っていた、307、303、その他の状況で試してみました。 Iv'eはno-cacheヘッダーを設定しようとしましたが、これも何もしませんでした。

私が試した他の何かは、URLに?unique()= 1を設定することです。常に変更されるパラメータに対して同じ結果が得られます。

JSのリダイレクトは、UXがそのサイトのキーであるため、問題にはなりません。

ヒント?

Header set Cache-Control max-age=0 

は完全に問題を修正しました: おかげで、

+0

_ "私が試した何か他のものは、URLにunique()= 1を設定することです。常に変化するが同じ結果が得られます。" _ - キャッシュされたリダイレクトをブラウザが以前に要求していなかったURL ...リダイレクトする前に、どのURLでこれを試しましたか?ユーザーが送信した元のURL? – CBroe

+0

_「ユーザーがショッピングに出ようとしたときにカートが空のためリダイレクトされた場合」_なぜ最初にそれを行うのですか?チェックアウトページに移動し、カートが空であるため、チェックアウトする必要がないことを知らせるメッセージを表示します。あなたが今やって来るべきことをもっと導きたい場合は、「ショッピングを続ける」のような追加のリンクを提供する... – CBroe

答えて

0

問題は私の.htaccessとあったが、私は設定する必要がありました。

関連する問題