【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的服务器变量请求。请求中会带上浏览器的信息。通过正则表达式匹配,如果浏览器信息中带有正则中的任意一项,则匹配手机页面成功,跳转到手机页面。如果都不能匹配,就会跳转到电脑页面。正则表达式中的信息为现有手机浏览器信息,以后随着手机浏览器花样不断翻新,需要不断往里面添加表达式项。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。