• 网站认证
  • 教程:6,665|
  • 话题:6319|
  • 评论:46|
  • 会员:196|
  • 注册
  • 查看作者
  • DedeCMS跳转到移动端适配,获取当前页面URL

    DedeCMS根据用户访问设备JS跳转到与PC对应的移动端URL,如何调用对应的页面URL?URL种类有首页、列表页、内容页;又分为动态URL(带或不带参数,一般URL"?"后面的就是参数)、静态URL。

    带参数的动态URL: ?tid=85&zxfg=%B5%D8%D6%D0%BA%A3 静态URL: /zhuangxiu_xiaoguotu/

    上面两个PC端URL分别跳转到如下移动端URL

    /plus/wap_list.php?tid=85&zxfg=%B5%D8%D6%D0%BA%A3 /dedecms/PC端页面SEO设置

    如果不设置好,虽然页面不一样,但大体上是一样,蜘蛛会重复收录PC端和WAP移动端,容易造成分权。

    一般的处理办法是,PC用alternate声明与之对应的移动端URL,移动端用canonical声明只收录PC端的URL。

    PC首页跳转WAP首页

    把下面代码放在PC端的</head>之前。下面称为通用代码。

    <link rel="alternate" media="only screen and (max-width: 640px)" href=https://www.niuqi.net/"http:/m.niuqi.net/"> <meta http-equiv="mobile-agent" content="format=xhtml;url=http://m.niuqi.net/"> <script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script> PC列表跳转WAP列表

    先来看看PC端URL不带参数的跳转到移动端调用方法

    这是列表页的URL,列表页、内容页都可以用{dede:field.typeurl /}获取,PC端对应页面需要用到PHP str_replace函数,把下面代码替换通用代码对应部分

    {dede:field.typeurl function = "str_replace('' , 'niuqi.net' , @me);"/}

    说明:可以根据实际需要进行修改橙色部分内容,前面一个是PC端的URL,后面是WAP移动端URL。

    相同的道理,WAP移动端内容页URL调用

    {dede:field.arcurl function = "str_replace('' , 'niuqi.net' , @me)"/}

    PC端URL带参数的跳转到移动端调用方法

    这是前面做的一个重庆装修公司站装修效果图筛选的遇到的问题,当时做PC与WAP静态URL,参考文章《DedeCMS一个后台管理PC移动端纯静态非官方版》,但筛选部分还是动态URL,先看下面的带参数的URL:

    /plus/list.php?tid=85&zxfg=%B5%D8%D6%D0%BA%A3

    跳转到

    /plus/wap_list.php?tid=85&zxfg=%B5%D8%D6%D0%BA%A3

    可直接复制链接看具体形式,只能通过其他方法获取当前URL,再用str_replace改写,获取方法如下:

    {dede:geturl runphp='yes'} @me = GetCurUrl(); //获取当前URL @me = str_replace('/plus/list.php' , '/plus/wap_list.php' , @me); {/dede:geturl}

    geturl函数调用的是相对路径,根据实际需要修改为绝对路径。如果是用二级域名的URL,直接把二级域名写在geturl函数前面即可。

    注意:此方法不适用静态页面,不过如果是筛选(带参数)可以完全使用动态页面。

    PC内容页跳转WAP内容页

    这个就简单了,不管是静态URL还是动态URL都通用。把下面代码替换通用代码相应部分。

    {dede:field.arcurl function="str_replace('' , 'niuqi.net' , @me)"/} WAP移动端页面SEO设置

    在</head>之前添加canonical声明。

    <link rel="canonical" href=http://www.niuqi.net/"http:/www.niuqi.net/">

  • 0
  • 0
  • 0
  • 83
  • 请登录之后再进行评论

    登录
  • 做任务
  • 实时动态
  • 偏好设置
  • 单栏布局 侧栏位置: