Hook_boot()を実装するモジュールがあり、ユーザーがホームページにアクセスするかどうか、およびユーザーが特定のCookieを持っていないかどうかを確認します。両方の検証が真の場合、ユーザーを/ welcomeページにリダイレクトしてCookieを設定します。したがって、ユーザーが2回目にホームページにアクセスしようとすると、ユーザーがCookieを持っていることがわかり、リダイレクトされません。
最近、自分のサイトにVarnishをインストールしましたが、ホームページにアクセスしようとすると、/ welcomeページにアクセスします。スキップすることはありません。
よくわかりませんが、初めてホームページにアクセスしたとき、まだCookieがない場合は、ホームページがキャッシュされ、/ welcome pageが表示され、Cookieが設定されます。次に、2回目にホームにアクセスしようとすると、キャッシュされたページ(Cookieがないと思われる)が取得され、Cookieがある場合でも、/ welcomeページに再度リダイレクトされます。
ホームページをキャッシュしないようにしましたが、機能しませんでした。
何かご意見は?
Varnishを使用する場合、匿名ユーザーの場合はPHPコードはまったく実行されません)、静的HTMLのみを取得することを考慮する必要があります。
あなたの場合の解決策は次のようになります:
これで、アイテム#2はPHPコードで作成されますが、Varnishを使用して書き直す必要があります。JavaScriptを使用してアイテム#2を作成することもできますが、動作がはるかに遅くなり、ユーザーにはブラウザーのリダイレクトが表示されます。