Cakephp2 で DB の中身を検索し、検索結果の一覧を表示するページを作成しています。
データ数が多いのでページネーションするようにしているのですが、検索後他のページに移ると検索状態が維持できずに消えてしまいます。ただ、そこでもう一度検索し直すか、現在のページを更新してから検索し直すと、検索状態を維持したままページを遷移することができます。

コードは以下の通りです。

<?php
class SampleController extends AppController {
    public $helpers = ["Html", "Form", 'UploadPack.Upload', "Session"];
    public $paginate = [
        "limit" => 10,
        "sort" => "created",
        "direction" => "desc"
    ];

    public function isAuthorized($user) {
        return true;
    }

    //トップページ
    public function index() {
        $conditions = [];

        debug(Router::url(NULL, true));
        //検索条件が送信されたら
        if ($this->request->is("POST")) {
            if (!empty($this->data["search"]["allSecand"])) {
                $searchSum = $this->data["search"]["all"] . " " .  $this->data["search"]["allSecand"];
            } else {
                 $searchSum = $this->data["search"]["all"];
            }

            //それぞれのインプットに合わせた検索用SQL文を発行
            if ($searchSum) {
                $conditions[] = $this->Sample->simpleSearch($searchSum);
            }
            //古いセッション削除
            if ($this->Session->check("conditions")) {
                $this->Session->delete("conditions");
                debug("conditions セッション削除");
            }
            if ($this->Session->check("search")) {
                $this->Session->delete("search");
                debug("search セッション削除");
            }

            //ページネーション後も検索条件を引き継ぐためにセッションで保持
            $this->Session->write("conditions", $conditions);
            //検索で入力された値をセッションで保持
            $this->Session->write("search", $this->request->data);
            debug("セッション書き込み");
            debug($_SESSION);
            //検索ボタンを押されたら必ず1ページ目から表示
            $this->request->params["named"]["page"] = 1;
        } else {
            if (preg_match("/domein.com\/$/", Router::url(NULL, true))) {
                debug("セッション削除開始");
                if ($this->Session->check("conditions")) {
                    $this->Session->delete("conditions");
                    debug("conditions セッション削除");
                }
                if ($this->Session->check("search")) {
                    $this->Session->delete("search");
                    debug("search セッション削除");
                }
                CakeSession::start();
                debug($_SESSION);
            } else {
                debug("セッション読み込み");
                debug($_SESSION);
                $conditions = $this->Session->read("conditions");
                $this->request->data = $this->Session->read("search");
            }
        }
        $data = $this->paginate($conditions);
        $this->set("samples", $data);
    }

消えるセッションは検索状態を格納している conditions と search だけで、ほかのセッションは残っています。

また、ローカル環境だと普通に動作するので、もしかしたらサーバー側の設定かもしれません。
Apache のバージョンは 2.4 、PHP のバージョンは 5.6 です。

どこを直せば検索状態を維持したままページ遷移できるでしょうか?よろしくお願いします。