Как не потерять query string при редиректе в PHP

06.10.2025 · PHP

Как не потерять query string при редиректе в PHP

После перенаправления пропадают фильтры. Если переносите запрос между заранее известными внутренними путями, соберите параметры заново с штатным кодированием.

$params = array( "q" => "веб разработка", "page" => 2 );
$query = http_build_query( $params, "", "&", PHP_QUERY_RFC3986 );
header( "Location: /search/?".$query, true, 302 );
exit;

Заголовок отправляется до вывода HTML. Путь назначения в примере фиксирован: не подставляйте пользовательский URL без проверки. Для временного перенаправления подходит 302, для постоянного выбирайте статус с учётом кеширования. При переносе запроса после POST отдельно решите, нужен ли переход к GET через 303.

Назад в блог

От идеи —
к первому шагу.

Расскажите, что хотите создать.
Обсудим задачу и наметим следующий шаг.