对于单个web引用来说,一个应用则含有admin管理,pc客户端,mobile移动端和api等。因此在开发商引入的Areas来进行不区分。
在域名设置的时候就存在这样一个问题:
- PC页面绑定了 www.abc.com的域名
- Wap 页面在项目中通过 Areas建立Wap域来区分。
-
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 &#