I need to change the url for some content nodes based on custom table in db.
It is working for frontend where pages are rendered with proper url and content.
But i hit the issue in backoffice some node when i want to publish them, i am getting warning :
and then the url are not properly generated:
i can only see:
this is my url provider :
if (current.AbsolutePath.StartsWith("/umbraco", StringComparison.OrdinalIgnoreCase))
{
return new UrlInfo(current.OriginalString, true, culture);
}
var defaultUrl = base.GetUrl(content, mode, culture, current);
if (defaultUrl?.Text is null)
{
return defaultUrl;
}
var normalizedPath = defaultUrl.Text.TrimStart('/').ToLowerInvariant();
var overrideEntry = Helpers
.GetOverrides()
.FirstOrDefault(f =>
f.OverrideUrl.ToLowerInvariant().Equals(normalizedPath) && !f.Url.Contains("default.aspx", StringComparison.OrdinalIgnoreCase)
);
if (overrideEntry is not null)
{
var customUrl = overrideEntry.Url.StartsWith('/') ? overrideEntry.Url : "/" + overrideEntry.Url;
return new UrlInfo(customUrl, true, culture);
}
return defaultUrl;
}
and content finder:
var path = request.Uri.AbsolutePath;
if (
path.StartsWith("/umbraco", StringComparison.OrdinalIgnoreCase)
|| path.StartsWith("/media", StringComparison.OrdinalIgnoreCase)
|| path.StartsWith("/App_Plugins", StringComparison.OrdinalIgnoreCase)
)
{
return Task.FromResult(false);
}
if (!contextAccessor.TryGetUmbracoContext(out var context))
{
return Task.FromResult(false);
}
var normalizedPath = path.TrimStart('/').TrimEnd('/').ToLowerInvariant();
var overrideEntry = Helpers
.GetOverrides()
.FirstOrDefault(f => f.Url.TrimStart('/').TrimEnd('/').ToLowerInvariant().Equals(normalizedPath));
var segments = request.Uri.Segments.ToList();
if (overrideEntry is null && !IsBookingRequest(request))
{
return Task.FromResult(false);
}
segments = overrideEntry is null ? segments : ConvertUrlToUrlSegments(overrideEntry.OverrideUrl).ToList();
var content = RouteHelpers.FindSegmentMatch(context.Content?.GetAtRoot().ToList(), segments);
if (content is null)
{
return Task.FromResult(false);
}
request.SetPublishedContent(content);
return Task.FromResult(true);
}
When i change the url provider more like in umbraco docs: Outbound request pipeline | CMS 13.latest (LTS) | Umbraco Documentation, the frontend still working but i am not able to open the backoffice content node i am getting error:
![]()
the code of updated url provider:
public override UrlInfo? GetUrl(IPublishedContent content, UrlMode mode, string? culture, Uri current)
{
// Get the default URL from Umbraco
var defaultUrl = base.GetUrl(content, mode, culture, current);
if (defaultUrl is null)
{
return null;
}
var normalizedPath = defaultUrl.Text.TrimStart('/').ToLowerInvariant();
var overrideEntry = Helpers
.GetOverrides()
.FirstOrDefault(f =>
f.OverrideUrl.ToLowerInvariant().Equals(normalizedPath) && !f.Url.Contains("default.aspx", StringComparison.OrdinalIgnoreCase)
);
if (overrideEntry is not null)
{
if (!(defaultUrl?.IsUrl ?? false))
{
return defaultUrl;
}
var customUrl = overrideEntry.Url.StartsWith('/') ? overrideEntry.Url : "/" + overrideEntry.Url;
return new UrlInfo(customUrl, true, culture);
}
return null;
}
DO you know maybe what i am doing wrong ?


