C# .NET 5网站实现http访问301永久重定向https 以及顶级域名301重定向www

博客随笔
31
.NET5
https
301重定向
域名重定项
重定向www

.NET 5 网站项目设置网站自动重定向301永久https 以及顶级域名定向www二级域名

C# .NET 5网站实现http访问301永久重定向https 以及顶级域名301重定向www

目前是本站所用到的域名和https定向代码,代码业务逻辑:http协议域名访问代码自动301重定向到https,访问顶级域名 yuantk.com重定向到 www.yuantk.com

主要作用是为了做网站优化 域名权重集中 具体有哪些好处可以自行百度资料

  1. 直接Nuget搜索引用 Microsoft.AspNetCore.Rewrite 添加引用即可
  2. 创建用到的自定义实体类

代码片段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;
        }
    }
  1. Startup里Configure方法里 添加代码

代码片段3

#region https重定向 以及顶级域名重定向www
            var options = new RewriteOptions();
            options.AddRedirectToWwwWithHttps();
            options.AddRedirectToHttps(301);
            app.UseRewriter(options);
#endregion

然后就可以发布项目到服务器测试看看了

.NET5 webApi项目接收HttpPost文本流数据
超简单的window 环境下IIS网站https配置免费的HTTPS认证服务教程
.NET5框架下使用HttpListener类实现http接口监听替代OWIN自我寄宿
从https站点跳转到http站点时获取不到referer的解决方案
.NET 5 WPF 如何开启控制台界面用于实时输出日志
MSB3644 找不到 .NETFramework,Version=v5.0 的引用程序集
IIS下HTTPS提示ERR_SSL_VERSION_OR_CIPHER_MISMATCH
ASP.NET网站改版后实现设置301永久重定向
暂无相关内容...
IIS Crypto在Windows服务器启用或禁用TLS,SSL协议的https优化工具
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删