Да, вам нужно установить правило перезаписи в .htaccess, которое выполняет HTTP-перенаправление, чтобы браузер запрашивал новый URL-адрес. Я бы порекомендовал код ответа 301 (постоянное перенаправление), если только он не является временным, в этом случае используйте 302.
RewriteEngine on
RewriteCond %{QUERY_STRING} ^search=(.*)$
RewriteRule ^$ /news/%1? [L,R=301]
Должно работать, хотя я не проверял. Вот хорошее краткое изложение некоторых проблем, связанных с перенаправлением URL-адреса со строкой запроса на URL-адрес без такового.
РЕДАКТИРОВАТЬ: после тестирования изменил первый аргумент RewriteRule с ^/$
на ^$
. Должен работать сейчас для URL, таких как example.com/?search=foo
.