フィルタリングされたタグの最初の送信に基づいて検索を行うべきではないようです。一度検索コントローラーを通過してからリダイレクトすると、2回の検索を実行することになります。
ユーザーがフィルタリングするタグを送信する場合は、それらを使用してURLを作成し、フィルタリングされたタグを含むURLに直接リダイレクトします。同じ検索コントローラーに送信されると言ったので、その後、正しい検索が1回だけ開始され、ユーザーのURLは、最終結果になりたいものになります。
したがって、フィルタリングされたタグをから取得し$_POST
、すぐに最終結果のURLにリダイレクトして、正しい検索をトリガーします。
偽性PHP
$valid_tags = array_filter($_POST['tags'], function($t) {
// validate tags as alphanumeric (substitute the appropriate regex for your tag format)
// this discards non-matching invalid tags.
return preg_match('/^[a-z0-9]+$/i', $t);
});
// Don't forget to validate these tags in the search controller!
// Implode the tags (assuming they are received as an array) as a space separated string
// and urlencode() it
$tags = urlencode(implode(" ", $valid_tags));
header("Location: http://example.com/news/$tags");
exit();