Как лучше сделать редирект?
В твоем случае редиректить через header не лучшая идея (ИМХО).
Я правильно понимаю что ты используешь какой-то фреймворк? Если да, то какой? Скорее всего в конфиге можно настроить роуты.
Если же без фреймворка работаешь, то копай с сторону .htacces
Должно получиться что-то вроде этого:RewriteCond %{QUERY_STRING} action=page [NC]
RewriteCond %{QUERY_STRING} id=(\d+) [NC]
RewriteRule .* /page/%1/? [R=301,L]
Сделал на php$req = parse_url($_SERVER['REQUEST_URI']);
$req = $req['path'];
if ($req != '/') {
$req = strtolower($req);
$req = preg_replace('#//+#','/',$req);
if ($req != '/') {
$req = rtrim($req, '/\\');
}
}

if ($_SERVER['REQUEST_URI'] != $req) {
  header('Location: '.$req,true,301);
  exit;
}
htacces RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* /index.php
Норм ? или лучше подобные запросы в htacces обрабатывать (типа удаление слешей,  query string и тд ..)?