Если не использовать
enablePrettyUrl
и взглянуть на метод
UrlManager::createUrl()
, то мы увидим процесс формирования ссылки:
$url = "$baseUrl?{$this->routeParam}=" . urlencode($route);
if (!empty($params) && ($query = http_build_query($params)) !== '') {
$url .= '&' . $query;
}
return $url . $anchor;
И сразу станет понятно, что замена "/" на "%2F" происходит именно в urlencode.
Можете попробовать отнаследоваться от UrlManager и изменить этот метод, но тогда нужно также проверить метод парсинга запроса.