Как не потерять 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.