博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.net core 二级域名的设置
阅读量:6970 次
发布时间:2019-06-27

本文共 1392 字,大约阅读时间需要 4 分钟。

对于单个web引用来说,一个应用则含有admin管理,pc客户端,mobile移动端和api等。因此在开发商引入的Areas来进行不区分。

在域名设置的时候就存在这样一个问题:

  1. PC页面绑定了 www.abc.com的域名
  2. Wap 页面在项目中通过 Areas建立Wap域来区分。
  3. Api 建立 Areas Api来区分

    那么通过域名+路由的方式即可访问 wap页面和api页面。但如此并不友好,如何通过一个m.abc.com域名来访问 wap页面呢。

    众说周知,Asp.net core 的设计是基于管道,框架为我们提供了“中间件(Middleware)”,因此我们是否有可以通过建立一个中间来捕捉请求,对域名进行判断,当访问到m.abc.com域名的时候 就默认的返回wap的页面。

    解决方案如下:

    建立一个中间件 PathRewritingMiddleware 当检测到请求的地址没有任何连接参数(纯域名访问)时,区分返回不同的页面。

    public class PathRewritingMiddleware{    private readonly RequestDelegate _next;    private readonly string _domain;    private readonly string _path;    public PathRewritingMiddleware(RequestDelegate next,string domain,string path)    {        _next = next;        _domain = domain;        _path = path;    }    public Task Invoke(HttpContext context)    {        if(context.Request.Path.Equals("/") || context.Request.Path.Equals("")) {            string host = context.Request.Host.Value;            if (host.Equals(_domain, StringComparison.InvariantCultureIgnoreCase))            {                context.Request.Path = _path;            }        }        return _next(context);    }}

    在Startup文件的 Configure(IApplicationBuilder app, IHostingEnvironment env) 方法中注册,一定要在 app.UseMvc 前面

    //不同的域名显示不同的默认地址app.UseMiddleware
    ("m.abc.com","/wap/home");

如此当我们访问 的时候 默认返回的就是 页面内容(不是跳转)。

同理可以注册多次,进行不同的区分也可自定义编辑各种模块页面地址

转载于:https://blog.51cto.com/hncts/2375616

你可能感兴趣的文章
Linux的inode的理解
查看>>
nautilus命令
查看>>
如何让PowerShell显示中文不乱码
查看>>
前端面试的面试经验
查看>>
设计模式(四) 策略模式
查看>>
Expression 转化为sql(三) --自定义函数
查看>>
css
查看>>
我是如何基于angular+requirejs+node做SPA项目架构的
查看>>
H - 钻石 CSU - 1224: ACM小组的古怪象棋 搜索
查看>>
转-CMMI在中国之混乱-CMMI比ISO9000会更惨
查看>>
curl
查看>>
翻译 异步I/O不会创建新的线程
查看>>
图片点击放大满屏切换,可视图5张
查看>>
js-解决移动端点击事件的延迟问题
查看>>
C语言LL(1)文法
查看>>
jquery 实现表单数据转化为对象格式
查看>>
shiro验证时,当authenticationStrategy为AllSuccessfulStrategy时
查看>>
单例模式的线程安全
查看>>
page cache和buffer cache的区别
查看>>
python基本数据类型零碎知识点
查看>>