У меня есть проект Symfony, где пользователь может искать продукты. Это отлично работает при поиске из незащищенного модуля. Например. целевая страница.
Теперь, когда пользователь вошел в систему, просматривая настройки своего профиля, я использую соединение https.
Моя проблема в том, что когда я что-то ищу, меня перенаправляют на версию http, и при этом мои параметры POST теряются, и поиск не работает.
Это часть журнала при поиске по http:
[info] {sfFilterChain} Executing filter "sfRenderingFilter"
[info] {sfFilterChain} Executing filter "sslFilter"
[info] {sfFilterChain} Executing filter "sfExecutionFilter"
Так выглядит при поиске с защищенного сайта https:
[info] {sfFilterChain} Executing filter "sfRenderingFilter"
[info] {sfFilterChain} Executing filter "sslFilter"
[info] {sfFrontWebController} Redirect to "http://project.localhost/search"
[info] {sfWebResponse} Send status "HTTP/1.1 301 Moved Permanently"
[info] {sfWebResponse} Send header "Location: http://project.localhost/search"
...
[info] {sfFilterChain} Executing filter "sfExecutionFilter"
Проблема в том, что мой sslFilter не сохраняет исходные параметры записи!
Это код внутри моего execute ($ filterChain), где я меняю https на http.
Как я могу сохранить параметры POST.
if ($redirect) {
$non_secure_url = str_replace('https', 'http', $request->getUri());
return $context->getController()->redirect($non_secure_url, 0, 301);
}
$filterChain->execute();
Я пробовал разные вещи, как описано здесь:
сохранение параметров POST после страницы входа в Symfony
Но там они сохраняют параметр в пользователе, а не в ответе. Они нужны мне в массиве параметров POST.