如何实现电脑版网站和触屏版手机网站的页面一一对应跳转,是同时拥有电脑版网站和手机版网站的网站管理员需要考虑的问题:当使用手机访问电脑版网站的某一个具体页面时能自动跳转到对应的手机版页面。这个问题主要集中在用户使用手机时,通过移动搜索搜索关键词后,出来的页面可能不适用于手机浏览。
这种情况下遇到的页面,在手机上访问有可能是乱七八糟、毫无美感可言,或者是直接显示缩小版的电脑版网站,给网站访问者浏览网站带来极大的不便。这个时候我们就需要一个手机版的网站,而目前看来,更加流行的将是触屏版手机网站。那么当我们同时拥有了触屏版网站和电脑版网站后,该如何做到自动跳转呢?
通过搜索引擎里面的结果我们可以看到,大多数是直接采用JS、或者htaccess文件来实现跳转。但是问题来了,当使用手机访问电脑版的某一个具体页面时,跳转程序会自动跳转到手机版网站的首页去。其实这里我们更加希望的是能够跳转到手机版网站对应的具体页面,而不是首页。深圳网站建设公司创络刚刚上线了我们自己的触屏版网站,大家可以用手机试试在搜索引擎里搜索我们的网站,然后点击页面打开,看看是不是直接跳转到对应的页面的?
那么,我们是如何做到的呢?从上面的图片当中,您应该可以大概了解到业务处理流程,阅读接下来的内容可能需要一定的PHP程序基础:
首先我们需要通过程序获取$_SERVER[?HTTP_USER_AGENT?]来判断访客的来访方式,确定好是电脑还是手机(此处以手机为例,电脑访问时道理是相通的),然后跳转,这里如果直接跳转,就不会跳转到对应的页面去。但是我们可以在刚刚的程序上稍加处理,判断当前页面的URL地址,排除主域名外得到的值,以当前页面为例,请注意浏览器的地址栏,那么本页面得到的值应该是/news_342.html。获得的方式主要取决于服务器,不同的服务器将有不同的方法,例如可以使用$_SERVER[?REQUEST_URI?]获得该值。然后跳转的时候,直接跳转至对应的手机版域名+这个值的页面去,不过在这之前,请一定做好数据适配(同步)工作,否则将出现404错误页面。
关于$_SERVER[?REQUEST_URI?]是否支持伪静态?
其实这个问法不是很标准,部分网友在尝试此操作的时候,发现在IIS环境下$_SERVER[?REQUEST_URI?]其实是不能有效获得正确的值的,例如我们想要跳转到news_342.html这个页面去,而实际上会跳转到伪静态之前的页面news.php?newsid=342。这时就需要我们专门针对这一个服务器来判断该使用什么方法获得伪静态之后的值了,例如,可以尝试使用$_SERVER["HTTP_X_REWRITE_URL"]。这二者之间是有一定的区别的,具体在使用时大家可以遵循这样一个规律:IIS环境下用$_SERVER["HTTP_X_REWRITE_URL"],而Apache环境下则使用$_SERVER[?REQUEST_URI?]。更多有关SERVER的信息大家可以参考PHP手册或使用搜索引擎查询更加详细的资料。
希望以上资料对您有所帮助,创络感谢您的关注与分享!