.NET 5 网站项目设置网站自动重定向301永久https 以及顶级域名定向www二级域名
目前是本站所用到的域名和https定向代码,代码业务逻辑:http协议域名访问代码自动301重定向到https,访问顶级域名 yuantk.com重定向到 www.yuantk.com
主要作用是为了做网站优化 域名权重集中 具体有哪些好处可以自行百度资料
- 直接Nuget搜索引用 Microsoft.AspNetCore.Rewrite 添加引用即可
- 创建用到的自定义实体类
代码片段1
public class RedirectToWwwRule : 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 wwwHost = new HostString($"www.{req.Host.Value}"); var newUrl = UriHelper.BuildAbsolute("https", wwwHost, req.PathBase, req.Path, req.QueryString); var response = context.HttpContext.Response; response.StatusCode = 301; response.Headers[HeaderNames.Location] = newUrl; context.Result = RuleResult.EndResponse; } }
代码片段2
public static class RewriteOptionsExtensions { public static RewriteOptions AddRedirectToWwwWithHttps(this RewriteOptions options) { options.Rules.Add(new RedirectToWwwRule()); return options; } }
- Startup里Configure方法里 添加代码
代码片段3
#region https重定向 以及顶级域名重定向www var options = new RewriteOptions(); options.AddRedirectToWwwWithHttps(); options.AddRedirectToHttps(301); app.UseRewriter(options); #endregion
然后就可以发布项目到服务器测试看看了