欢迎您光临本站,秉承服务宗旨,履行"站长"责任,销售只是起点,服务永无止境!
也想出现在这里? 联系我们

DedeCMS实现URL不变PC和移动端展示不同模板

作者 : admin 本文共2191个字,预计阅读时间需要6分钟 发布时间: 2020-12-10 共6.06K人阅读
也想出现在这里? 联系我们

今天我们分享一篇实现URL不变PC和移动端展示不同模板的方法,文章来源重庆SEO吖七博客,复制请保留原创超链接:https://www.vi586.com/web/755.html。

做移动端的方法吖七介绍过许多,除了流行的小程序,目前移动端主流的方式有通过二级目录或二级域名的实现,也可以用CSS自适应的方式实现。当然,如果网站的后台不支持,也可以通过向百度提交移动端转码规则实现,但功能及模板比较单一。下面通过URL了解:

PC端与移动端URL主流方式(静态/伪静态)

PC端:http://www.xiuzhanwang.com/

移动端URL(1):http://www.xiuzhanwang.com/m/

移动端URL(2):http://m.xiuzhanwang.com/

另外还有许多动态URL方式,至于哪种方式比较好,百度官*方表明将一视同仁,那大家就不必追求了,但是要做好必要适配。

建议大家采用URL不变的的自适应做法,虽然不存在权重更集中的说法,但从本人做很多网站SEO优化的结果上看表现更好些。

移动端采用CSS自适应主要优点

  • 网站URL形式不复杂,不需要改写与PC对应的移动端URL,对无PHP基础的童鞋很友好。
  • 蜘蛛抓取不需要判断是否是PC或者移动端,抓取效率提高。
  • 模板建设仅需要一套模板,写好CSS自适应代码即可。
  • 一个后台管理内容,时间成本低,区别一些静态页面网站需要切换不同的后台或者修改源代码以生成不同的页面。

当然,老网站模板改起来比较麻烦,重构的时间成本反而更低。下面介绍另一种做法:适合动态或者伪静态的网站,URL保持不变,通过服务器判断(PHP方法)来访用户的客户端,选择不同的模板展示给用户。

 

URL不变PC和移动端展示不同模板

找到/include/extend.func.php,最下面增加以下代码

/**

 * 判断是否为移动设备访问

 * @return bool

 */

function isMobile()

{

    if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {

        return true;

    }

    if (isset($_SERVER['HTTP_VIA'])) {

        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;

    }

    if (isset($_SERVER['HTTP_USER_AGENT'])) {

        $clientkeywords = array('nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile');

        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {

            return true;

        }

    }

    if (isset($_SERVER['HTTP_ACCEPT'])) {

        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'textml') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'textml')))) {

            return true;

        }

    }

    return false;

}

 

1.首页处理

 

打开/index.php,找到

    $row['templet'] = MfTemplet($row['templet']);

在上面增加代码

if(isMobile()){

 $row['templet'] =str_replace('.htm','_m.htm',$row['templet']);

}

2.列表页/内容页/搜索页/TAG页面处理

打开/plus/list.php,/plus/view.php,/plus/search.php,/plus/tags.php找到

require_once(dirname(__FILE__)."/../include/common.inc.php");

下面增加代码

if(isMobile()){

 define('DEDEMOB', 'Y');

}

这样就处理完毕了,首页PC模板 index.htm 对应的移动端模板为 index_m.htm,以此类推,PC对应的移动端模板命名方式".htm"前面加"_m",也就是"_m.htm",需要放在同一模板目录下。移动端模板调用的图片、js、CSS等需要调整好路径,以免造成错误。

/m目录可以直接删除了,不会对系统造成任何影响,也不需要对移动端页面里面的URL进行改写。

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
【演示站】Ripro子主题 » DedeCMS实现URL不变PC和移动端展示不同模板
也想出现在这里? 联系我们

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

发表评论

也想出现在这里? 联系我们
Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 京ICP备18888888号
开通VIP 享更多特权,建议使用QQ登录

Fatal error: Uncaught RedisException: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error. in [no active file]:0 Stack trace: #0 {main} thrown in [no active file] on line 0