`
___loveOfForever
  • 浏览: 78253 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

非手机用户跳转到web页面,自动转向

阅读更多
不知道处理wap访问时,通常用什么方法来辨别手机访问或者模拟器访问?

仅通过http头可以辨别吗,下面是处理访问时,http头的各参数值情况。

在第一种情况中(手机访问),不太明白这个 ‘X-Forwarded-For 10.13.10.126’ 和 ‘X-Source-ID 211.136.72.249’这两个参数值的实际意义,google了一下,也没查出个所以然。是否包含这些参数即代表是手机访问呢?

在第二中情况中(模拟器访问),user-agent是模拟器的型号,是否取不到user-agent值即代表手机访问呢?

不知道大家是否有遇到类似的需要区分不同类型访问的问题

(1)手机访问的情况:
accept text/html, application/xhtml+xml, application/vnd.wap.xhtml+xml, application/vnd.wap.wmlscriptc, application/vnd.wap.wmlc, text/vnd.wap.wml, */*, text/x-vcard, text/x-vcalendar, image/gif, image/vnd.wap.wbmp
accept-charset UTF-8, ISO-8859-1, *
connection Keep-Alive
bearer-indication 11
Via WTP/1.1 BJBJ-PS-WAP2-GW09.bj2.monternet.com (Nokia WAP Gateway 4.0/CD3/4.0.04)
X-Forwarded-For 10.13.10.126
X-Source-ID 211.136.72.249
X-Nokia-CONNECTION_MODE CMODE
X-Up-Bearer-Type GPRS
X-Nokia-gateway-id NWG/4.0/CD3/Build04
x-wap-profile http://www.amobile.com.cn/ua/uapE600.xml
Cookie JSESSIONID=a_RiMX_dre9d;

(2)m3gate模拟器访问的情况:
Accept-Language en
Accept text/vnd.wap.wml, text/vnd.wap.wmlscript, image/vnd.wap.wbmp, image/png, */*
Accept-Charset UTF-8
User-Agent M3Gate/1.2
Host 159.226.203.244:8001
Connection Keep-Alive
Cookie __utma=61259500.669454885.1168311463.1168311463.1168311463.1; __utmz=61259500.1168311463.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); JSESSIONID=amfpHdN-Exa_

————————————————————————

z-blog有一个WAP访问功能,但是在使用中,如果不允许FF、IE等桌面浏览器访问,那么即使直接访问WAP.ASP,许多型号的手机并也不能正常显示z-blog的WAP,而如果允许FF、IE等桌面浏览器访问,则有被暴力破解密码的危险(没有验证码,如果要写个程序破解很简单。)。怎么办呢?经过排查,我发现:许多手机提交的HTTP_ACCEPT并不是规范的“text/vnd.wap.wml”,z-blog不会当作手机访问来处理,所以不能访问。那怎么办呢?我们把它改的宽松一点不就得了
一般手机不管提不提交“text/vnd.wap.wml”,总会提交一个含有“wap”的HTTP_ACCEPT,我们就从这里入手:
If InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"text/vnd.wap.wml") > 0

改为  If InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"wap") > 0 Then

——————————————————————————

Dim h_accept
       h_accept = LCase(CStr(Request.ServerVariables("HTTP_ACCEPT")))
     
       If InStr(h_accept, "application/vnd.wap.xhtml+xml") <> 0 Then
              Response.ContentType = "application/vnd.wap.xhtml+xml"
       ElseIf InStr(h_accept, "application/xhtml+xml") <> 0 Then
              Response.ContentType = "application/xhtml+xml"
       ElseIf InStr(h_accept, "text/vnd.wap.wml") <> 0 Then
              Response.ContentType = "text/vnd.wap.wml"
            
       Else
              Response.ContentType = "text/html"

 
哈~没想到看起来还真不错,但是想到需要输入这么麻烦的地址可能有点麻烦;所以就想起来弄个手机访问判断。

索性网络这方面的资料不少,在一位同博的日志发现并引用来做参考如下:

在common文件夹下增加checkwap.asp内容为:

<%If InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"text/vnd.wap.wml") > 0 Then Response.Redirect "wap.asp"%>

然后在header.asp包含checkwap.asp.
<!--#include file="common/checkwap.asp" -->

另附其它一些参考代码:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="Mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
<Script Runat="Server">
Sub Page_Load
Dim caps As System.Web.Mobile.MobileCapabilities
caps=Request.Brower
Response.Write(caps.Brower)
Response.Write(caps.Type)
Response.Write(caps.PreferredRenderingType)
Response.Write(caps.ScreenCharactersWidth)
Response.Write(caps.ScreenCharactersHeight)
End Sub
Browser属性返回设备使用浏览器类型,如:IE,Phone.com
Type属性返回设备的一般类型,如:IE5,Pocket Internet Explorer
PreferredRenderingType属性返回设备的表达语言的MIME类型,如html32,wm111
后面两个是返回设备可以水平和垂直显示的字符数

Alpar

<%
Response.Buffer = TRUE
Dim IsWap
httpAccept = LCase(Request.ServerVariables("HTTP_ACCEPT"))
if Instr(httpAccept,"wap") then
IsWap=1
Else Response.Redirect "/index.html" : Response.Flush : Response.End
End if
%>

顺便说一下,GOOGLE实在厉害的让我敬佩。在手机浏览器中输入http://www.google.com你就会马上发现谷歌一下子自动变成了方便手机访问的搜索页,这个就是:移动谷歌(而百度却没有这方面的功能)。不仅如此,在GOOGLE上搜索到的平时我的浏览的网页如果在手机上点击访问的话,都会被贴心的GOOGLE智能的转化成手机网页即:wap网页。呵呵~GOOGLE,你果然强!
分享到:
评论

相关推荐

    JavaScript实现x秒后自动跳转到一个页面

    在Web开发中,实现页面自动跳转是一个常见的需求,比如在用户完成某个操作后,如提交表单或确认购买,页面会自动转向一个新的URL。这里我们将详细探讨三种通过JavaScript实现x秒后自动跳转到一个页面的方法。 1. **...

    易语言对象获取跳转页面源码

    跳转页面,顾名思义,是指用户点击一个链接后,网页会自动转向另一个URL。在Web开发中,这可以通过HTTP响应状态码(如301、302)或者JavaScript的`window.location`对象来实现。在易语言中,实现这个功能可能需要...

    网页跳转代码大全

    (3秒钟后自动跳转到www admin5 com) 以上三种是也比较常见 比较常用的网页跳转代码运行平台Win9x WinNT Win2000 WinME WinXP 二 几段简单的网页跳转代码 不隐藏转向之后的地址 代码一:"&gt;一 三种网页跳转代码:...

    HBuilder使用之通过扫描二维码浏览本地静态页面

    使用HBuilder的二维码预览功能可以在无需上传服务器的情况下快速地在手机上查看页面效果,这对于快速迭代和调试非常有帮助。 #### 知识点三:如何通过HBuilder生成二维码预览静态页面 1. **安装并启动HBuilder**:...

    微信里面的加载页,自动跳转

    自动跳转则是指加载完成后,页面无需用户手动操作即能自动转向下一个页面。这种功能在优化用户体验、节省用户时间方面起到了重要作用。下面将详细探讨加载页的设计原则、实现方式以及自动跳转的技术实现。 1. **...

    网站跳转代码方便实用

    网站跳转代码是Web开发中常见的一种技术,主要用于引导用户从一个页面自动跳转到另一个页面。这种技术在多种场景下都有应用,如网站维护、临时屏蔽、域名备案问题等。下面将详细介绍网站跳转代码的工作原理、常用...

    JSP和HTML跳转.zip_html挑转jsp_jsp和HEML跳转_jsp和HTML跳转

    它们之间的跳转是Web应用中的常见操作,可以帮助用户在不同页面间导航。本篇文章将详细讲解HTML页面跳转的五种方法以及JSP与HTML之间的跳转。 一、HTML页面跳转方法 1. HTML的`&lt;a&gt;`标签:最基础的跳转方式是使用`...

    适合任何网页的跳转代码

    网页自动跳转是Web开发中的一个常见需求,通常用于实现用户访问特定页面后能够自动转向另一个页面的效果。这种技术的应用场景非常广泛,例如在网站重定向、登录认证后的页面跳转等方面都有着重要的作用。 #### 二、...

    页面转向与重定向

    页面转向与重定向是 Web 开发中两个非常重要的概念,它们都是用于在不同的 Web 资源之间进行跳转的,但是它们之间有着很大的区别。下面我们将详细介绍转发和重定向的概念、调用方式、工作流程和区别。 一、调用方式...

    监控指定网址并跳转到指定网站去

    "监控指定网址并跳转到指定网站去"这个话题涉及到的是如何自动化地检查特定网址的状态,并在满足一定条件时,引导用户或系统自动转向预设的目标网站。这通常用于优化用户体验、提升网站流量或者实施安全策略。 首先...

    axios 处理 302 状态码的解决方法

    当服务器返回这个状态码时,它会同时提供一个新的URL(在`Location`响应头中),浏览器会自动转向这个新URL。对于传统的页面刷新,这种行为是期望的,但对于基于Ajax的SPA,这会导致用户体验中断,因为页面的控制权...

    域名转向系统

    1. 多语言网站:不同地区的用户访问同一域名时,根据其地理位置自动转向相应语言的网站。 2. 品牌保护:注册多个相似或相关的域名,将其全部转向主域名,防止竞争对手抢注或恶意使用。 3. 移动优化:为适应移动...

    在web.xml中配置action或.do

    - 访问`http://IP:端口/项目名/go.action`,系统应自动调用`MyAction`类进行处理,并跳转到`next.jsp`页面。 #### 四、深入理解与应用场景 - **应用场景**:这种配置方式通常用于简单的页面跳转或功能触发,适用...

    Java web课堂练习

    - **`autoFlush`**:控制当输出缓冲区满时是否自动刷新到客户端,默认为 `true`。 - **`info`**:提供关于页面的信息,通常用作文档注释,不被JSP容器处理。 #### 二、实验内容详解 ##### 1. `&lt;%@page%&gt;` 和 `!%&gt;...

    在ASPX中进行页面导航

    1. **超链接控件HyperLink**:这是最简单直观的页面导航方式,通过在ASPX页面中添加HyperLink控件,设置其`NavigateUrl`属性来指定目标页面的URL,用户点击后即可跳转到新页面。例如: ```asp ~/Page2.aspx"&gt;跳转...

    基于ASPNET的Web应用开发单元5内置对象ppt课件.ppt

    `Server.Execute()`方法执行指定的页面,并将结果合并到当前页面的输出流中,而`Server.Transfer()`方法则会直接跳转到新的页面,不再返回当前页面,这对于实现动态页面路由和逻辑分支非常有用。例如,当需要根据...

    商业编程-源码-WebZone Redirector v1.03b(虚拟主机域名转向程序).zip

    在互联网中,域名重定向是一个常见的功能,它允许用户访问一个URL时,自动跳转到另一个不同的URL。这对于网站迁移、多域名策略或者维护期间的临时指向非常有用。下面我们将深入探讨WebZone Redirector的核心功能、...

    Struts2解决表单重复提交

    这样,当发生重复提交时,Struts2框架会自动处理并转向token.jsp页面,提示用户重复提交了表单。 对于第二种原因,即提交表单后刷新浏览器页面导致的重复提交,Struts2框架允许开发者通过配置结果视图的跳转方式来...

Global site tag (gtag.js) - Google Analytics