首页 > 代码库 > 【ASP.NET】同一URL根据不同设备跳到不同页面

【ASP.NET】同一URL根据不同设备跳到不同页面

     我们都知道,现在的新大型网站,如果输入www开头的网址,网站会自动判别设备,并跳转到合适的页面,来自于PC和移动端最终访问的真实url会不同。解决方案如下:

     在网站的默认页面Defau.aspx的Default.aspx.cs文件的Page_Load方法中加入如下代码:

string u = Request.ServerVariables["HTTP_USER_AGENT"];Regex b = new Regex(@"android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|m  mp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xi  ino|ucweb|mqqbrowser", RegexOptions.IgnoreCase | RegexOptions.Multiline);if (b.IsMatch(u)){    Response.Redirect("Mobile/HTML/index.html");}else{    Response.Redirect("PC/HTML//index.htm");}

     其中Response.Redirect方法中跳转的路径为实际页面相对于WebSite.UI的路径。if中为手机版页面路径,else中为电脑版页面路径。

     该功能原理为:浏览器访问同台页面时,会发出叫HTTP_USER_AGENT的服务器变量请求。请求中会带上浏览器的信息。通过正则表达式匹配,如果浏览器信息中带有正则中的任意一项,则匹配手机页面成功,跳转到手机页面。如果都不能匹配,就会跳转到电脑页面。正则表达式中的信息为现有手机浏览器信息,以后随着手机浏览器花样不断翻新,需要不断往里面添加表达式项。