My code above breaks pages with a query string (like the search page). The following code fix this issue:
if (strpos($_SERVER['QUERY_STRING'], 'repeat=w3tc') !== false) {
$uri = explode('?', $_SERVER['REQUEST_URI']);
$queryString = '';
if (isset($uri[1])) {
$queryString = trim(str_replace('repeat=w3tc', '', $uri[1]), '&');
$queryString = (!empty($queryString)) ? '?' . $queryString : '';
}
wp_redirect(home_url($uri[0] . $queryString), 301);
exit;
}