Если речь идет о asp.net core, то можно использовать миддлвар. Что-то вроде такого:
public class RedirectToNoWwwRule : IRule
{
public virtual void ApplyRule(RewriteContext context)
{
var req = context.HttpContext.Request;
if (req.Host.Host.Equals("localhost", StringComparison.OrdinalIgnoreCase))
{
context.Result = RuleResult.ContinueRules;
return;
}
if (!req.Host.Value.StartsWith("www.", StringComparison.OrdinalIgnoreCase))
{
context.Result = RuleResult.ContinueRules;
return;
}
var NoWwwHost = new HostString(req.Host.Value.Substring(4));
var newUrl = UriHelper.BuildAbsolute(req.Scheme, NoWwwHost , req.PathBase, req.Path, req.QueryString);
var response = context.HttpContext.Response;
response.StatusCode = 301;
response.Headers[HeaderNames.Location] = newUrl;
context.Result = RuleResult.EndResponse;
}
}
После создаем метод расширения
public static class RewriteOptionsExtensions
{
public static RewriteOptions AddRedirectNoWww(this RewriteOptions options)
{
options.Rules.Add(new RedirectToNoWwwRule());
return options;
}
}
и потом прописываем в Startup.cs в Configure
var options = new RewriteOptions();
options.AddRedirectNoWww();
app.UseRewriter(options);