JavaScript ASP VBPHP .NET HTML
返回首页
当前位置: 主页 > 技术资料 > 编程文档 > PHP >

明晨网络谈建站程序

时间:2009-11-12 17:16来源:MingchenNet.com 作者:明晨网络原创 点击:
明晨网络 ,关注网络技术、网络经济发展,提供网络建设、软件开发服务,官方站点是 mingchennet.com ,该站点目前使用dedecms 织梦内容管理系统搭建。 在早期,明晨网络使用ZBLOG搭建技术博客。

    明晨网络,关注网络技术、网络经济发展,提供网络建设、软件开发服务,官方站点是mingchennet.com,该站点目前使用dedecms 织梦内容管理系统搭建。

    在早期,明晨网络使用ZBLOG搭建技术博客。由于明晨网络主要关注编程技术,因此需要一个能够完美展现程序代码的内容编辑器。ZBLOG即便装上插件,也不能很好的展示代码,在使用了2个月左右,就被替换下来了。

    考察了众多CMS,明晨网络最终选定了DEDECMS最为建站程序。主要基于以下考虑:

    1、程序语言

    有三种选择,ASP、.NET以及PHP。明晨网络在2007年开发过一款B/S广告管理系统,深知ASP在功能与效率以及跨平台上的局限性;也使用.NET开发过CRM系统,.NET是强大——可惜在经济驱动下才能发挥出其强大的功能;PHP,自然成为明晨网络选择建站系统的首选语言了。

    2、CMS口碑

    ASP语言的CMS,明晨网络只推荐两个KESION CMS ,KING CMS。明晨网络最常使用KESION 科讯CMS 为客户开发网站——没有特殊功能的中小企业站点使用ACCESS数据库足矣。另外一个ASP下的比较好的cms就是KING CMS了,可惜即便如我们一样是专职程序员,也不得不花时间去学习各种cms的私有格式的标签,累!

    相比之下,PHP语言的CMS就丰富多了,PHPCMS 、帝国、DEDECMS、SUPESITE等。国外CMS不大适应国情,就暂时不考虑了。
    起初,明晨网络倾向于SUPESITE,因为康盛的实力摆在眼前。不过SUPESITE主要是配合DZ论坛,用来做门户的。
    而帝国后台,给人感觉比较乱,并且调试过程中出现了某些莫名其妙的错误。
    PHPCMS,就不用多说了,绝对是做二次开发的首选CMS。明晨网络阅读了PHPCMS 2008 SP2一些核心文件的代码,受益匪浅。但是——那个强大的代码编辑器在哪里呢?
    这个时候,就该DEDECMS出场了。最初听说DEDECMS,是在2007年,那时我们正醉心于敲代码,对互联网建站并不在意——直到现在。DEDECMS号称建垃圾站的首选,因为它手上简单容易,模板及文件结构经过精心的搜索引擎优化,采集功能也颇为强大。另外,明晨网络找到了PHP下的FCKEditor代码高亮插件UG

    3、SEO效果

    明晨网络的每篇内容,几乎都是在后台敲出来的,虽然很多内容来源于其他站点,但是都重新使用了自己的语言来组织表达,所以很多关键字都能排在搜索引擎第一位。实在惭愧,QQ远程协助中远程桌面扭曲歪斜的解决办法  是明晨网络参考网上众多资料而操作成功的,仅仅是做个记录罢了;而QQ2009绿化版启动失败的修复方法 更是从licoolgo.cn那里查阅来的。但是这两篇文章为明晨网络带来了相当大比例的流量,这应该是得益于DEDECMS吧。

    DEDECMS到底是通过什么来实现搜索引擎优化的?模板!一套优秀的模板,不仅仅要有好的UI、UE,在语法结构上符合W3C、兼容各种浏览器,更要利于搜索引擎的抓取、分析。明晨网络觉得WEB前端比起后端更重要!

    4、动态修改内容

    比如今天在页面的某个位置放置一个广告位,而明天又要去掉,这是通过修改模板或者说主题来实现的。如果生成静态文件,修改模板后,又要重新生成,比较繁琐,当数据量比较大的时候,就是一场灾难了。所以明晨网络的每篇内容一般是不生成静态的。为了节省空间,统一管理,牺牲这点SEO与性能,对于明晨网络来说是值得的。
   

   明晨网络理想中的CMS

    明晨网络一直在开发内容管理系统,只是这套系统是为自己特制的,需要有编程基础,了解系统的运行机制。所以明晨网络内容管理系统(姑且叫mcCMS)暂时没有公开发布的打算。明晨网络一直在改进,试图使得mcCMS有如下特性:

  1、URL Router

    URL路由功能用来做什么?几个PHP框架比如ThinkPHP等,都提到了URL路由功能,即以某一个文件作为站点功能入口,比如index.php;所有功能通过这一个文件来实现,比如后台管理的地址就是 http://localhost/index.php?model=admin&action=login ,意思就是调用admin模块的login功能;而查看某篇文章的地址可能就是 http://localhost/index.php?model=art&action=view&id=123,意思就是调用art模块的view功能,传递的id参数为123。

    php能够实现url路由,在于这种语言可以轻松地按需求引用其他文件,比如当id=1,就引用1.php,当id=2就引用2.php。这种动态包含功能,是ASP和ASP.NET无法实现或者说很难实现的。ASP动态包含内容,都是通过自写函数,逐层遍历使用FSO或者ADODB.STREAM读取文件内容后再globalexecute来实现的,效率相当低下。

    由于url router要求URL符合特定格式,所以就可以很轻松的做出rewrite规则了。目前,mcCMS可以模仿任意CMS的动态页面的URL,静态URL更是不在话下。下面列举几条地址,描述mcCMS是如何进行URL路由的。

    localhost/post/dedecms-seo.html
   mcCMS要实现这种看上去完全像是生成了静态html文件地址,必须运营于伪静态模式下。mcCMS在后台截获这个URL请求,根据配置文件中指定的路由规则,得知域名为 localhost ,请求路径为默认首页,虚拟路径为post/的URL,将交由 content.php这个文件处理,于是动态include content.php,content.php直接根据最后虚拟文件名 dedecms-seo.html判断,在文件缓存中搜索相应缓存数据,加载到模版中显示出来。如果相应文件缓存不存在,或者缓存已经过期,则再从数据库读取。适当设置etag之类的header头,通过HttpAnalyzer抓包查看,可以发现与静态文件的输出是一摸一样的。并且,从文件缓存输出的效率与静态页面直接输出的效率,几乎一致,PHP果然是最快的WEB脚本。

    localhost/post/dedecms-seo.php
    如果mcCMS运行于伪静态,则实现方法同上。如果是普通模式,则直接创建post目录,在该目录生成一个dedecms-seo.php文件,该文件仅一行代码

  1. <?php  
  2. include('../index.php');  
  3. ?> 

      这样,请求还是能够被index.php截获,从而按照指定的规则被路由。

    localhost/post/tag/中文标签
    如果运行于伪静态,则使用虚拟路径规则;否则,创建“post/tag/中文标签”这个目录,在该目录下生成默认php首页,动态包含站点首页即可。

    localhost/post/tag?kw=中文 或者     localhost/post/tag?中文 或者 localhost/post/tag?/中文 都同上。

    实际上,mcCMS中url路由最大的不同之处在于自定义规则——域名也是包含在内的,也就是说访问 localhost 和 127.0.0.1出来的网站是完全不一样的——如果你设置了不同的规则的话,完美实现一个虚拟主机绑定多个站点

    2、数据采集接口

    明晨网络自行开发了一个蜘蛛程序,这个运行于客户端windows系统的脚本级的蜘蛛,定时自动抓取数据,分类索引,通过SQLyogTunnel.php隧道,使用mysql 的存储过程来更新入库。

    互联网上的很多零星散布的数据都没有价值,但是将它们抓取后,根据一定的规则算法归类索引,将有很高的研究价值。对这些分布零散的数据进行抽取,必须使用一定的算法,耗费相当的带宽,把这种工作,交给分布在客户端的蜘蛛脚本来实现,再合适不过了。
    另外,SEO讲求伪原创,这个也只能交由客户端软件,根据一定的算法来实现,词频分析、中文分词、语义替换、段落乱序等等。
  

    3、通行证

    mcCMS使用ucenter作为认证接口,兼容其他主流程序。

    4、模板管理

    mcCMS使用PHP本身作为模板,以求获得更高的效率,这影响了系统安全性。好在mcCMS的使用对象是懂PHP的程序员,在模版中插入PHP代码时应该会考虑周全的。

    5、完善中...

(责任编辑:admin)
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容