Чтобы удалить параметры из определенного URL, можно воспользоваться следующей функцией:

<?php

function remove_params_from_url($url, $paramsToRemove)
{
    if (!is_array($paramsToRemove)) {
        $paramsToRemove = [$paramsToRemove];
    }

    // Парсим URL
    $parsed = parse_url($url);

    // Если нет параметров, возвращаем исходный URL
    if (!isset($parsed['query'])) {
        return $url;
    }

    // Парсим параметры запроса
    parse_str($parsed['query'], $params);

    // Удаляем указанные параметры
    foreach ($paramsToRemove as $param) {
        unset($params[$param]);
    }

    // Собираем URL обратно
    $result = '';

    // Схема и хост (если есть)
    if (isset($parsed['scheme'])) {
        $result .= $parsed['scheme'] . '://';
    }

    if (isset($parsed['host'])) {
        $result .= $parsed['host'];
    }

    // Путь
    $result .= $parsed['path'] ?? '';

    // Параметры (если остались)
    if (!empty($params)) {
        $result .= '?' . http_build_query($params);
    }

    // Якорь
    if (isset($parsed['fragment'])) {
        $result .= '#' . $parsed['fragment'];
    }

    return $result;
}

Функция разбирает переданный URL на части, используя функцию  parse_url(), затем удаляет указанные параметры, после чего собирает URL обратно.

На вход принимает обрабатываемый URL, а также параметры, которые нужно удалить – можно передать строкой один параметр, а можно массивом несколько параметров.

При этом функция учитывает, что ссылка может быть относительной или абсолютной. Якорь тоже сохраняется, если он был.