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/

DedeCMSPC端跳转到移动端

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=http://www.dede58.com/"http:/m.dede58.com/"> <meta http-equiv="mobile-agent" content="format=xhtml;url=http://m.dede58.com/"> <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('' , 'dede58.com' , @me);"/}

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

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

{dede:field.arcurl function = "str_replace('' , 'dede58.com' , @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('' , 'dede58.com' , @me)"/} WAP移动端页面SEO设置

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

<link rel="canonical" href=http://www.dede58.com/"http:/www.dede58.com/">

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3ba5db5f5fac168e294fe1d39c6aa949.html