¼:<![CDATA[郝聪SEO博客:网站SEO顾问 - JƱƽ̨J©JԨJ׬淨J̳J //www.2w0f.cn/index.php 为商业网站制定整体SEO战略,创造庞大搜索流量,为企业网站提升关键词排名,带动产品销售。为发展助力,成就你我!]]> zh-cn //www.2w0f.cn/phone-visit-pc-redirect-m-js/ <![CDATA[手机等移动设备访问PC端站点自动跳转到手机网站的跳转代码]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Tue, 10 Apr 2018 03:33:57 +0000 //www.2w0f.cn/phone-visit-pc-redirect-m-js/

【跳转代码一?/p>

XML/HTML代码
        
  1. <script type="text/javascript">  
  2.     
  3. try {  
  4.     
  5. var urlhash = window.location.hash;  
  6.     
  7. if (!urlhash.match("fromapp"))  
  8.     
  9. {  
  10.     
  11. if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i)))  
  12.     
  13. {  
  14.     
  15. window.location="//m.your-website.com/"; //这里的网址请改为你手机站的网址  
  16.     
  17. }  
  18.     
  19. }  
  20.     
  21. }  
  22.     
  23. catch(err)  
  24.     
  25. {  
  26.     
  27. }  
  28.     
  29. </script>  

【跳转代码二】(利用百度Site App代码判断手机访问?/p>

XML/HTML代码
        
  1. <script language="JavaScript">function uaredirect(f){try{if(document.getElementById("bdmark")!=null){return}var b=false;if(arguments[1]){var e=window.location.host;var a=window.location.href;if(isSubdomain(arguments[1],e)==1){ff=f+"/#m/"+a;b=true}else{if(isSubdomain(arguments[1],e)==2){ff=f+"/#m/"+a;b=true}else{f=a;b=false}}}else{b=true}if(b){var c=window.location.hash;if(!c.match("fromapp")){if((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))){location.replace(f)}}}}catch(d){}}function isSubdomain(c,d){this.getdomain=function(f){var e=f.indexOf("://");if(e>0){var h=f.substr(e+3)}else{var h=f}var g=/^www\./;if(g.test(h)){hh=h.substr(4)}return h};if(c==d){return 1}else{var c=this.getdomain(c);var b=this.getdomain(d);if(c==b){return 1}else{cc=c.replace(".","\\.");var a=new RegExp("\\."+c+"$");if(b.match(a)){return 2}else{return 0}}}};uaredirect("m.your-website.com");</script>
  2.     
  3. <script type="text/javascript">uaredirect("m.your-website.com");</script>?nbsp;
        

【跳转代码三?/p>

XML/HTML代码
        
  1. <script language="JavaScript">  
  2.     
  3. function mobile_device_detect(url)  
  4.     
  5. {  
  6.     
  7. var thisOS=navigator.platform;  
  8.     
  9. var os=new Array("iPhone","iPod","iPad","android","Nokia","SymbianOS","Symbian","Windows Phone","Phone","Linux armv71","MAUI","UNTRUSTED/1.0","Windows CE","BlackBerry","IEMobile");  
  10.     
  11. for(var i=0;i<os.length;i++)  
  12.     
  13. {  
  14.     
  15. if(thisOS.match(os[i]))  
  16.     
  17. {  
  18.     
  19. window.location=url;  
  20.     
  21. }  
  22.     
  23.   
  24.     
  25. }  
  26.     
  27. //因为相当部分的手机系统不知道信息,这里是做临时性特殊辨?nbsp; 
  28.     
  29. if(navigator.platform.indexOf('iPad') != -1)  
  30.     
  31. {  
  32.     
  33. window.location=url;  
  34.     
  35. }  
  36.     
  37. //做这一部分是因为Android手机的内核也是Linux  
  38.     
  39. //但是navigator.platform显示信息不尽相同情况繁多,因此从浏览器下手,即用navigator.appVersion信息做判?nbsp; 
  40.     
  41. var check = navigator.appVersion;  
  42.     
  43. if( check.match(/linux/i) )  
  44.     
  45. {  
  46.     
  47. //X11是UC浏览器的平台 ,如果有其他特殊浏览器也可以附加上条?nbsp; 
  48.     
  49. if(check.match(/mobile/i) || check.match(/X11/i))  
  50.     
  51. {  
  52.     
  53. window.location=url;  
  54.     
  55. }  
  56.     
  57. }  
  58.     
  59. //类in_array函数  
  60.     
  61. Array.prototype.in_array = function(e)  
  62.     
  63. {  
  64.     
  65. for(i=0;i<this.length;i++)  
  66.     
  67. {  
  68.     
  69. if(this[i] == e)  
  70.     
  71. return true;  
  72.     
  73. }  
  74.     
  75. return false;  
  76.     
  77. }  
  78.     
  79. }  
  80.     
  81. mobile_device_detect("//m.your-website.com");  
  82.     
  83. </script>  

Tags - , ]]>
//www.2w0f.cn/EmpireCMS-ajax-check-repeat-title/ <![CDATA[帝国CMS通过AJAX在后台发布信息时验证标题是否重复的方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 15 Jan 2018 10:14:22 +0000 //www.2w0f.cn/EmpireCMS-ajax-check-repeat-title/

1.后台-》管理数据表-》找到title字段-》输入表单替换html代码

XML/HTML代码
        
  1. <input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60">    

替换?/p>

XML/HTML代码
        
  1. <input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60" onblur="checkTitle()">  

然后再输入表单最下面添加如下代码

XML/HTML代码
        
  1. <!--以下代码检测标题是否重?->  
  2.     
  3. <script type="text/javascript" src="//apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>
  4.     
  5. <script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script> //修改为自己的JQ库地址
  6.     
  7. <script type="text/javascript">  
  8.     
  9. function checkTitle()  
  10.     
  11.     {  
  12.     
  13.         var classid='<?=$_GET[classid]?>';  
  14.     
  15.         var id='<?=$_GET[id]?>';  
  16.     
  17.         var tit=document.add.title.value;  
  18.     
  19.         console.log("我是标题="+tit);  
  20.     
  21.         console.log("我是classid="+classid);  
  22.     
  23.         console.log("我是id="+id);  
  24.     
  25.         $.ajax({  
  26.     
  27.             url: 'ReTitleAjax.php?classid='+classid+'&id='+id+'&title='+tit,  
  28.     
  29.             dataType:"json",  
  30.     
  31.             cache: false,  
  32.     
  33.             error: function(){  
  34.     
  35.                 alert("检测失败,请重?quot;);  
  36.     
  37.             },  
  38.     
  39.             success: function(data){  
  40.     
  41.                 if (data==1){  
  42.     
  43.                     alert('重复标题');  
  44.     
  45.                 }  
  46.     
  47.                 if (data==0){  
  48.     
  49.                     //alert('可以添加信息');  
  50.     
  51.                     console.log("可以添加信息");  
  52.     
  53.                 }  
  54.     
  55.             }  
  56.     
  57.         });  
  58.     
  59.     }  
  60.     
  61. </script>  

接着新建一个php文件,保存在 /e/admin/ReTitleAjax.php ,代码如?/p>

XML/HTML代码
        
  1. <?php
  2.     
  3. define('EmpireCMSAdmin','1');    
  4.     
  5. require("../class/connect.php");    
  6.     
  7. require("../class/db_sql.php");    
  8.     
  9. require("../class/functions.php");    
  10.     
  11. require LoadLang("pub/fun.php");    
  12.     
  13. require("../data/dbcache/class.php");    
  14.     
  15. $link=db_connect();    
  16.     
  17. $empire=new mysqlquery();    
  18.     
  19. $editor=1;    
  20.     
  21. //验证用户    
  22.     
  23. $lur=is_login();    
  24.     
  25. $logininid=$lur['userid'];    
  26.     
  27. $loginin=$lur['username'];    
  28.     
  29. $loginrnd=$lur['rnd'];    
  30.     
  31. $loginlevel=$lur['groupid'];    
  32.     
  33. $loginadminstyleid=$lur['adminstyleid'];    
  34.     
  35.     
  36.     
  37. $classid=(int)$_GET['classid'];    
  38.     
  39. $id=(int)$_GET['id'];    
  40.     
  41. $title=AddAddsData($_GET['title']);    
  42.     
  43. $where='';    
  44.     
  45. if($id)    
  46.     
  47. {    
  48.     
  49. $where=' and id<>'.$id;    
  50.     
  51. }    
  52.     
  53. //已审?nbsp;   
  54.     
  55. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where title='".addslashes($title)."'".$where." limit 1");    
  56.     
  57. //未审?nbsp;   
  58.     
  59. if(emptyempty($num))    
  60.     
  61. {    
  62.     
  63. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]."_check where title='".addslashes($title)."'".$where." limit 1");    
  64.     
  65. }    
  66.     
  67. echo json_encode($num);
        
  68.     
  69. ?>

上面是采用post查询返回json结果的方式来实现查重,我们还可以通过get方式,js函数如下?/p>

XML/HTML代码
        
  1. <script type="text/javascript">    
  2.     
  3. function  checkTitle()  
  4.     
  5. {    
  6.     
  7.     var classid='<?=$_GET[classid]?>';    
  8.     
  9.     var id='<?=$_GET[id]?>';    
  10.     
  11.     var tit=document.add.title.value;    
  12.     
  13.         var answerurl='ReTitleAjax.php';    
  14.     
  15.         $.get(answerurl+"?classid="+classid+'<?=$ecms_hashur['ehref']?>&title='+tit, function(data){    
  16.     
  17.             if(data){    
  18.     
  19.                 if(data==1){    
  20.     
  21.                     $("#titletips").html("<font color='red'>已经存在此名称,请检查是否已经添加过</font>");    
  22.     
  23.                 }    
  24.     
  25.                 else{    
  26.     
  27.                     $("#titletips").html("<font color='green'>可以添加信息</font>");    
  28.     
  29.                 }    
  30.     
  31.                 return false;    
  32.     
  33.             }    
  34.     
  35.             else{    
  36.     
  37.                 $("#titletips").html("<font color='red'>检测失败,请重?/span></font>");    
  38.     
  39.             }    
  40.     
  41.         });      
  42.     
  43. }    
  44.     
  45. </script>    

接着在title字段的input后放一个容器用于存储提示信息,例如<span id="titletips"></span>,还可以通过在出现重复时禁用其他input输入等方式来限制,这里只是给出原理,大家可在此基础上发挥?/p>

注:如在帝国cms7.2版本开启金刚模式或刺猬模式下使用,需要在js函数中加入hash验证字符串,并在php处理文件中加入验证函数,否则会出现访问验证页面空白无法返回数据?/span>

 


Tags - , , ]]>
//www.2w0f.cn/dedecms-diyform-field-required/ <![CDATA[DeDeCMS自定义表单实现字段默认为必填项]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 08 Jan 2018 10:35:21 +0000 //www.2w0f.cn/dedecms-diyform-field-required/ 默认的dedecms自定义表单却没有必填项的设置,如果要设置织梦自定义表单的必填项,需要进行额外的修改?/p>

步骤一:通过修改程序源文件实?/strong>数据入库前的必填验证

1、编?/plus/diy.php文件,在?0行左右找到代码:

XML/HTML代码
        
  1. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);  

2、在这行代码下面,添加以下代码后保存文件?/p>

XML/HTML代码
        
  1. //增加必填字段判断  
  2.     
  3. if($required!=''){  
  4.     
  5.     if(preg_match('/,/', $required)){  
  6.     
  7.         $requireds = explode(',',$required);  
  8.     
  9.         foreach($requireds as $field){  
  10.     
  11.             if($$field==''){  
  12.     
  13.                 showMsg('?号的为必填内容,请正确填?, '-1');  
  14.     
  15.                 exit();  
  16.     
  17.             }  
  18.     
  19.         }  
  20.     
  21.     }else{  
  22.     
  23.         if($required==''){  
  24.     
  25.             showMsg('?号的为必填内容,请正确填?, '-1');  
  26.     
  27.             exit();  
  28.     
  29.         }  
  30.     
  31.     }  
  32.     
  33. }  
  34.     
  35. //end  

3、在创建的自定义表单中找到代码:

XML/HTML代码
        
  1. <form action="/plus/diy.php" enctype="multipart/form-data" method="post">  

在上述代码下面,添加代码?/p>

XML/HTML代码
        
  1. <input type="hidden" name="required" value="数据字段?数据字段?quot; />  

注意这行代码要修改下,根据你的表单所需要设置的必填项,例如设置“姓名”?ldquo;邮箱”为必填项。示例:

XML/HTML代码
        
  1. <input type="hidden" name="required" value="name,email" />  

5、保存后,必填项设置完成,当用户提交表单时间,系统检查到必填项没有输入内容,就会提示“?号的为必填内容,请正确填?rdquo;?/p>

步骤二:通过javascript脚本代码实现页面数据必填检?/strong>

1、把以下代码保存为bitian.js文件?/p>

XML/HTML代码
        
  1. $(document).ready(function() { //complain为自定义表单的ID,如果生成的表单没有可以自行加上,即 id="complain"
  2.     
  3.     //验证  
  4.     
  5.     $('#complain').submit(function () { //#name为要验证表单中的ID,如想让用户名不能为空,在后台用户名的数据字段名设为name,下?/span>
  6.     
  7.         if($('#name').val()==""){  
  8.     
  9.             $('#name').focus();  
  10.     
  11.             alert("用户名不能为空!");  
  12.     
  13.             return false;  
  14.     
  15.         }  
  16.     
  17.         if($('#tel').val()=="") {  
  18.     
  19.             $('#tel').focus();  
  20.     
  21.             alert("联系电话不能为空?quot;);  
  22.     
  23.             return false;  
  24.     
  25.         }  
  26.     
  27.         if($('#title').val()=="") {  
  28.     
  29.             $('#title').focus();  
  30.     
  31.             alert("标题不能为空?quot;);  
  32.     
  33.             return false;  
  34.     
  35.         }  
  36.     
  37.         if($('#text').val()=="") {  
  38.     
  39.             $('#text').focus();  
  40.     
  41.             alert("具体内容不能为空?quot;);  
  42.     
  43.             return false;  
  44.     
  45.         }  
  46.     
  47.     })  
  48.     
  49. });  

2、在表单模板文件中,调用中添加上面的JS文件?/p>

XML/HTML代码
        
  1. <script src='文件路径/js.js' type="text/javascript"></script>  

Tags - ,
, , , ]]> //www.2w0f.cn/dedecms-channel-support-limit/ <![CDATA[DeDeCMS的channel标签支持limit(属?功能]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Fri, 05 Jan 2018 09:41:06 +0000 //www.2w0f.cn/dedecms-channel-support-limit/ 修改步骤:

找到标签文件include\taglib\channel.lib.php,大概在36行,找到

XML/HTML代码
        
  1. $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|";  

替换?/p>

XML/HTML代码
        
  1. $attlist ="typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|,limit|";  

大概?0行,找到

XML/HTML代码
        
  1. $line = empty($row) ? 100 : $row;  

在下边增加一?/p>

XML/HTML代码
        
  1. $limit = trim(eregi_replace('limit','',$limit));
        if($limit!=''){
           $limit = " limit $limit ";
        }else{
           $limit = " limit 0,$line ";
        }

然后批量查找limit 0, $line,替换为$limit(下方会?条sql语句?strong>?/strong>

模版中调用方法:

XML/HTML代码
        
  1. {dede:channel typeid='1' type='son' limit='起始条数' row='总共输出的条?}  

也就是从 ?limit条记录开始输?一共输出row条结?/strong>

为什么要同时使用limit 跟row 呢?这是为了在不影响row功能的情况下使用limit

 


Tags - , , ]]>
//www.2w0f.cn/dedecms-top-higher-column-id/ <![CDATA[DeDeCMS获取上级栏目ID及顶级栏目ID]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Fri, 05 Jan 2018 09:24:31 +0000 //www.2w0f.cn/dedecms-top-higher-column-id/ 获取上级栏目ID

XML/HTML代码
        
  1. {dede:field.reid/}  

获取顶级栏目ID

XML/HTML代码
        
  1. {dede:field.typeid function='GetTopid(@me)'/}  

获取顶级栏目id,名称及链?/p>

XML/HTML代码
        
  1. {dede:field.typeid function="gettoptype(@me,id)"/} //id   
  2.     
  3. {dede:field.typeid function="gettoptype(@me,name)"/} //名称   
  4.     
  5. {dede:field.typeid function="gettoptype(@me,link)"/} //链接   

修改 include/helpers/extend.helper.php,在结尾增加如下代码 ?/p>

XML/HTML代码
        
  1. /**  
  2.     
  3. * 获取一个类目的顶级栏目  
  4.     
  5. * @param string $tid 栏目ID  
  6.     
  7. * @return string  
  8.     
  9. */  
  10.     
  11. if ( ! function_exists('gettoptype'))  
  12.     
  13. {  
  14.     
  15. function gettoptype($tid,$action)  
  16.     
  17. {  
  18.     
  19. global $dsql,$cfg_Cs;  
  20.     
  21. if(!is_array($cfg_Cs))  
  22.     
  23. {  
  24.     
  25. require_once(DEDEDATA."/cache/inc_catalog_base.inc");  
  26.     
  27. }  
  28.     
  29. if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0)  
  30.     
  31. {  
  32.     
  33. $topid = $tid;  
  34.     
  35. }  
  36.     
  37. else  
  38.     
  39. {  
  40.     
  41. $topid = GetTopid($cfg_Cs[$tid][0]);  
  42.     
  43. }  
  44.     
  45. $row = $dsql->GetOne("SELECT * FROM `#@__arctype` WHERE id=$topid");  
  46.     
  47. $toptypename = $row['typename'];  
  48.     
  49. $toptypeurl = $topid;  
  50.     
  51. if($action=='id') return $topid;  
  52.     
  53. if($action=='name') return $toptypename;  
  54.     
  55. if($action=='link') return GetOneTypeUrlA($row);  
  56.     
  57. }  
  58.     
  59. }  

Tags - , , ]]>
//www.2w0f.cn/dedecms-channel-support-keyword-description/ <![CDATA[让DeDeCMS的channel标签支持调用栏目描述description及关键词keywords]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Thu, 04 Jan 2018 09:34:53 +0000 //www.2w0f.cn/dedecms-channel-support-keyword-description/ DeDeCMS 5.7 的channel标签本身并不支持调用子栏目的关键词及栏目描述,要想实现该功能需要修改程序文件,具体的实现方法如下:

第一步:找到include\taglib\channel.lib.php文件?6?/p>

XML/HTML代码
        
  1. $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath  

第二步:在后面添?keywords,description

XML/HTML代码
        
  1. $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,keywords,description  

参考示例代码:

XML/HTML代码
        
  1. {dede:channel type='son'  row='6'  typeid='4'}  
  2.     
  3.   <a href="[field:typeurl/]">[field:typename/]——[field:keywords/]——[field:description /]</a>   
  4.     
  5. {/dede:channel}  
        

Tags - , , ,
, , , ]]> //www.2w0f.cn/dedecms-update-data-folder-name/ <![CDATA[DeDeCMS安全设置:更改data目录命名]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Fri, 15 Dec 2017 07:44:21 +0000 //www.2w0f.cn/dedecms-update-data-folder-name/ DeDeCMS的data目录如果使用默认命名,那么系统的安全肯定会大打折扣。因此,管理后台才会给出这样的提示:强烈建议将data目录搬移到Web根目录以外?/p>

但是对于虚拟主机来说,有些虚拟主机限制,不给移动到web目录以外,那么为了最大限度的减少网站被攻击的可能,可以将data目录改名,这样也进一步减少了攻击的可能。具体操作如下:

一、第一?/p>

修改include目录下的common.inc.php这个文件。打开文件,找到第16行:

XML/HTML代码
        
  1. define('DEDEDATA', DEDEROOT.'/data');  

把data修改成为您要改的目录名,如:改为suibianqiming,那么则改为?/p>

XML/HTML代码
        
  1. define('DEDEDATA', DEDEROOT.'/suibianqiming');  

第二步:

用FTP软件把data目录改名suibianqiming,也就是跟第一步改的名字一样?/p>

第三步:

登陆DeDeCMS管理后台,进入:系统 > 系统基本参数 > 性能选项?ldquo;模板缓存目录?rdquo;改为?suibianqiming/tplcache?/p>

第四步:

完成上述三步之后,你会发现打开网站自动跳到安装文件了。这就需要修改根目录下的index.php这个文件,把文件最前面的几行注释掉,注释如下,也就是在代码前面?/?/p>

XML/HTML代码
        
  1. //if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))  
  2.     
  3. //{  
  4.     
  5. //    header('Location:install/index.php');  
  6.     
  7. //    exit();  
  8.     
  9. //}  

第五步:

在后台更新的时候,还会附带产生另外一个情况,即:网站地图跟RSS、JS这几项更新有问题。解决办法是:在网站根目录下新建个data目录,然后data目录下再分别新建rss和js两个目录,这样就可以了?/p>
Tags - , , ]]> //www.2w0f.cn/dedecms-update-table-prefix/ <![CDATA[DedeCMS修改数据库表前缀_dede的方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Fri, 15 Dec 2017 07:13:35 +0000 //www.2w0f.cn/dedecms-update-table-prefix/ 在安装DedeCMS织梦系统的时候,大多数都是选择默认设置,例如:数据表前缀_dede。但是,默认表前缀是存在安全隐患的,因此,需要变更表前缀,以下是针对已安装好的DeDeCMS更换表前缀的方法?/p>

第一步:利用phpmyadmin备份全站数据库,保存?sql文件。利用文本编辑器的替换功能,将原来的数据表前缀(默认:dede_)替换为新的数据表前缀(例  如:new_),替换的时候尽量将“_”带上,避免把不必要的地方替换掉?/p>

第二步:将替换完成后再通过phpmyadmin导入修改后的sql文件?/p>

第三步:修改DedeCMSdata文件夹中的common.inc.php文件。找?$cfg_dbprefix = ‘dede_'; 将后面的dede_修改为自己新设置的表前缀?/p>

第四步:测试修改后的系统是否工作正常。确认没问题后,再通过phpmyadmin删除数据库中?ldquo;_dede”为前缀的数据表?/p>
Tags - , ]]> //www.2w0f.cn/dedecms-friendlink-flink/ <![CDATA[DeDeCMS调用友情链接的标签]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Thu, 14 Dec 2017 09:16:22 +0000 //www.2w0f.cn/dedecms-friendlink-flink/ DeDeCMS调用友情链接使用flink标签,有两种写法:一种是自动?lt;li>标签,另外一种不?lt;li>标签?/p>

一、自动加<li>标签

XML/HTML代码
        
  1. {dede:flink row='24'/}

二、不?lt;li>标签

XML/HTML代码——图片链接
        
  1. {dede:flink row='24' type='image' titlelen="24" typeid="0"} [field:link /] {/dede:flink} 
        
XML/HTML代码——文本链接
        
  1. {dede:flink row='24' type='text' titlelen="24" typeid="0"} [field:link /] {/dede:flink} 
        

三、友情链接调用标签说?/span>

标签名称:flink  

功能说明:用于获取友情链?/span>

适用范围:全局使用

基本语法?

{dede:flink row='24'/} (自动加li标签)

{dede:flink linktype='2' row='24'}[field:link /]{/dede:flink}(不会加li标签?/span>

参数说明?

type='image' 或textall,图片链接,text文字链接?

row='24' 链接数量

titlelen='24' 站点文字的长?

linktype='1' 链接位置(首页,内?

typeid='0' 所有类型,可以在系统后台[模块]-[友情链接]中的“网站类型管理”中查看?/span>


Tags - , , ]]>
//www.2w0f.cn/discuz-remove-forum-portal-php/ <![CDATA[Discuz程序去除forum.php和portal.php的方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Tue, 07 Nov 2017 07:30:10 +0000 //www.2w0f.cn/discuz-remove-forum-portal-php/ Discuz程序的门户或者论坛的默认首页URL中会自带portal.php或forum.php,从SEO角度而言,会产生两方面的问题?/p>

1、同时存在www.domain.com和www.domain.com/portal.php 两个URL版本,必然会造成域名权重分散,不利于URL的统一

2、当爬虫抓取www.domain.com时,页面会自?01跳转至www.domain.com/portal.php

于是我们需要想办法将权重集中在?结尾的网址中,并且使页面正常返?00状态码,而不是以portal.php或forum.php文件结尾的网址。具体方法如下:

后台设置
        
  1. 全局 > 域名设置 > 应用域名
  2.     
  3. 【默认】选项填写域名
  4.     
  5. 【首页】选项填写带www的二级域?/span>


Tags - , , ]]>
//www.2w0f.cn/windows2003-IIS6-startup-gzip/ <![CDATA[Windows IIS6.0下开启Gzip压缩的方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Wed, 27 Jul 2016 10:09:31 +0000 //www.2w0f.cn/windows2003-IIS6-startup-gzip/ 开启gzip可以极大的加速网站。有时压缩比率高?0%,近来测试了一?最少都?0%以上,还是相当不错的。另外GZIP压缩的网页对搜索引擎也是 友好的。既然开启gzip有这么多好处,那么我们应该怎样开启gzip?(本文以windows server  2003操作系统和IIS6.0服务器为?.

第一步:双击IIS服务器,右键点击网站,点击属性,然后点击服务,我们看到HTTP压缩,然后在压缩应用程序文件,压缩静态文件中打钩,然后点击确定,第一步就完成?/p>

第二步:然后我们右键点击web服务扩展,点击添加一个新的web服务扩展,输入扩展名,为了便于我们识别,我们可以起名为gzip(起名应该是随意的),然后点击添加,选择C:\WINDOWS\system32\inetsrv\gzip.dll,然后点击确定,扩展状态为允许,否?gzip不能生效,一切完成,我们就可以点击确定了.

第三步:接下来也是最重要的一步了,编辑IIS配置数据库配置文件,在此操作之前,我们应该关闭IIS服务器才能进行接下来的操作,当然我们也可以不关闭IIS?务器,我们双击IIS服务器,右键点击本地计算机,点击属性,在允许直接编辑配置数据库上打钩,那么我们不用关闭IIS就能直接配置服务器配置数据库配置文件了?/p>

第四步:我们找到C:\WINDOWS\system32\inetsrv下的MetaBase.xml文件,操作这个文件之前应该先复制一份,以免出现意外的情 ?打开此文件,搜索deflate,找到HcDoStaticCompression原来为false改为 true,HcDynamicCompressionLevel原来?,改?,HcFileExtensions里面就可以添加我们需要压缩的后缀?这里添加的是静态文件,一般压缩html,js,css图片不列为压缩之?动态的文件可不可以压缩呢,当然可以 HcScriptFileExtensions里面就是填写要压缩的动态文?配置完这个,我们要来配置下面的gzip,他们两个紧挨着的,配置方法相同?/p>

第五步:一切步骤都就绪了,我们看看是否开启成功了呢,那么怎样查看呢,方法有两种,一种是使用火狐的firebug,一种是使用站长工具查看,当然小编就知道这两种,或许还有其他方法,就不深入研究了.哇,开启成功了.大家是不是也想试试呢?/p>


Tags - , , ]]>
//www.2w0f.cn/empire-cms-tag-iis-url-rewrite-tag-notfound/ <![CDATA[帝国CMS在IIS环境开启Tag伪静态后出现“TAG不存在”的解决方法!]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Thu, 16 Jun 2016 18:06:49 +0000 //www.2w0f.cn/empire-cms-tag-iis-url-rewrite-tag-notfound/ 打开/e/tags/index.php文件

查找?/p>

XML/HTML代码
        
  1. $tagname=RepPostVar($_GET['tagname']);   

修改?/p>

XML/HTML代码
        
  1. $tagname=RepPostVar(iconv('gb2312', 'utf-8', $_GET['tagname']));  

Tags - ,

, , ,

, ,

, , , , ]]> //www.2w0f.cn/windows-2003-upload-200k/ <![CDATA[Windows 2003系统200K上传限制的解决方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Tue, 20 Oct 2015 13:02:36 +0000 //www.2w0f.cn/windows-2003-upload-200k/ 在Windows 2003 server上会出现上传大小受限制的问题,这是由于windows 2003 server的IIS 6做了限制所致,II6默认设置是最大只能上?00K的文件,下面介绍一下如何修改IIS6设置,以使上传不受限制?/p>

进入管理工具-〉Internet 信息服务(IIS)管理器,如下?/p>

首先停止Internet 信息服务(IIS)的internet服务,如下图?/p>

 

如下图,选择“停止..internet 服务”,点击确定即可:

接着,在找到文件c:windowssystem32inetsrvmetabase.xml,用“记事?rdquo;打开该文件,用记事本中的“查找”功能

搜索关键?ldquo;AspMaxRequestEntityAllowed”,搜索到结果如下图所示,

AspMaxRequestEntityAllowed="204800" 是win  2003用于限制最大上传文件大小的,默认是204800?00KB,你可以根您的具体情况,修改该值,1MB对应1024000?0MB对应 10240000,依此类推,设置完该值,保存文件即可?/p>

做完上述设置,如下图,进入internet 服务管理器(IIS?在demo(本地计算机)上点击鼠标右键,选择所有任?〉重新启动IIS,进入如下的界面,选择"启动...的Internet 服务",点击确定按钮即可?/p>


Tags - , , , ]]>
//www.2w0f.cn/dedecms-article-pre-next/ <![CDATA[DeDeCMS文章页中上一?下一篇文章的调用代码]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Sun, 09 Aug 2015 13:40:00 +0000 //www.2w0f.cn/dedecms-article-pre-next/ DeDeCMS的上一篇文章与下一篇文章调用标签:

 

XML/HTML代码
        
  1. {dede:prenext get='pre'/}  
  2.     
  3. {dede:prenext get='next'/}  

如果要修改文字或仅仅调用上一篇下一篇的链接,而不显示注解文字,修改以下代码:
找到include目录下的这个文件:arc.archives.class.php
找到这几行:

XML/HTML代码
        
  1. $this->PreNext['pre'] = "上一篇:{$preRow['title']} ";  
  2.     
  3. $this->PreNext['pre'] = "上一篇:没有?quot;;  
  4.     
  5. $this->PreNext['next'] = "下一篇:{$nextRow['title']} ";  
  6.     
  7. $this->PreNext['next'] = "下一篇:没有?nbsp;";  


根据实际情况修改即可?/p>
Tags - ]]> //www.2w0f.cn/dedecms-security-config/ <![CDATA[DedeCMS系统安全防范与安全设置]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Tue, 28 Jul 2015 08:39:23 +0000 //www.2w0f.cn/dedecms-security-config/ DeDeCMS系统存在的某些漏洞经常被黑客利用批量挂黑链或挂马,给使用DeDeCMS建设网站的管理员们造成了不小的困扰和麻烦,笔者便是其中之一,如何做好DeDeCMS安全防范是便成了必须要解决的问题。根据一些实战经验与网上收集而来的信息,汇总如下?/p>

1、保持DeDeCMS源码升级,及时更新补丁?/p>

2、安装完DeDeCMS后及时把install文件夹删除。(日后如需覆盖安装再另行上传该目录?/p>

3、安装DeDeCMS时,建议修改数据库的表前缀,不使用dedecms默认的前缀dede_,可以改成名字?/p>

4、后台登录开启验证码功能,将默认管理员admin改成其他名称?/p>

5、修改管理后台目录名,最好是改成MD5形式的,最好长点,可以带特殊字符?/p>

6、如果全站使用纯静态HTML页面,则可以把plus下的相应文件和根目录下的index.php删除(原则:用不到的全删除,甚至可以考虑把数据库里面不用的表删除掉)

7、不需要留言本功能把/plus下的guestbook删除

8、不需要会员功能的可以把整个member删除

9、管理后?ldquo;文件管理?rdquo;属于多余功能,而且最影响安全,可以将后台管理目录下file_manage_xxx.php全部删除,包括以下程序文件:

        
  • file_manage_control.php
  •     
  • file_manage_main.php
  •     
  • file_manage_view.php
  •     
  • media_add.php
  •     
  • media_edit.php
  •     
  • media_main.php

10、不需要软件下载功能的,可以将管理目录下soft__xxx_xxx.php全部删除?/p>

11、不需要SQL命令运行器的将管理后台目录下的sys_sql_query.php 文件删除?/p>

12、不需要tag功能请将根目录下的tag.php删除?/p>

13、不需要顶客请将根目录下的digg.php与diggindex.php删除?/p>

14、用不到的功能一概关闭,比如会员、评论等,如果没有必要通通在后台关闭?/p>

15、以下一些是可以删除的目录:

        
  • member会员功能
  •     
  • special专题功能
  •     
  • company企业模块
  •     
  • plus\guestbook留言?/li>

16、最安全的使用方式:本地生成html,然后通过FTP上传到网站空间,不包含任何动态文件,理论上最安全?/p>

17、服务器web目录权限设置:有条件的用户把DedeCms中data、templets、uploads、html、special、images、install目录设置为不允许执行脚本,其它目录禁止写入,系统将更安全?/p>

18、安装DedeCms官网推出的万能安全防护代?/p>

打开config_base.php文件;找到以下这段代码:

XML/HTML代码
        
  1. //禁止用户提交某些特殊变量  
  2.     
  3. $ckvs = Array(‘_GET’,'_POST’,'_COOKIE’,'_FILES’);  
  4.     
  5. foreach($ckvs as $ckv){  
  6.     
  7. if(is_array($$ckv)){  
  8.     
  9. foreach($$ckv AS $key => $value)  
  10.     
  11. if(eregi(“^(cfg_|globals)”,$key)) unset(${$ckv}[$key]);  
  12.     
  13. }  
  14.     
  15. }  

修改成如下代码:

XML/HTML代码
        
  1. //把get、post、cookie里的<?转换?amp;lt;
  2.     
  3. $ckvs = Array('_GET','_POST','_COOKIE');  
  4.     
  5. foreach($ckvs as $ckv){  
  6.     
  7. if(is_array($$ckv)){  
  8.     
  9. foreach($$ckv AS $key => $value)  
  10.     
  11. if(!empty($value)){  
  12.     
  13. ${$ckv}[$key] = str_replace(‘<'.'?','&'.'lt;'.'?',$value);  
  14.     
  15. ${$ckv}[$key] = str_replace('?'.'>‘,’?’.’&’.’gt;’,${$ckv}[$key]);  
  16.     
  17. }  
  18.     
  19. if(eregi(“^cfg_|globals”,$key)) unset(${$ckv}[$key]);  
  20.     
  21. }  
  22.     
  23. }  
  24.     
  25. //检测上传的文件中是否有PHP代码,有直接退出处?nbsp; 
  26.     
  27. if (is_array($_FILES)) {  
  28.     
  29. foreach($_FILES AS $name => $value){  
  30.     
  31. ${$name} = $value['tmp_name'];  
  32.     
  33. $fp = @fopen(${$name},’r');  
  34.     
  35. $fstr = @fread($fp,filesize(${$name}));  
  36.     
  37. @fclose($fp);  
  38.     
  39. if($fstr!=” && ereg(“<\?”,$fstr)){  
  40.     
  41. echo “你上传的文件中含有危险内容,程序终止处理?rdquo;;  
  42.     
  43. exit();  
  44.     
  45. }  
  46.     
  47. }  
  48.     
  49. }  

19、基?htaccess文件中使用rewrite来达到禁止指定脚本的运行效果。规则内容如下:

XML/HTML代码
        
  1. RewriteEngine on  RewriteCond % !^$
  2.     
  3. RewriteRule uploads/(.*).(php)$ – [F]
  4.     
  5. RewriteRule data/(.*).(php)$ – [F]
  6.     
  7. RewriteRule templets/(.*).(php)$ – [F]

 针对uploads,data,templets 三个目录做了执行php脚本限制,设置可读写不可执行权限?/p>

20、include、member、plus、dede目录设置为可读可执行不可写入权限?/p>

21、常见恶意文件,以备自查?/p>

        
  • plus/ac.php;
  •     
  • plus/config_s.php  ;
  •     
  • plus/config_bak.php;
  •     
  • plus/diy.php ;
  •     
  • plus/ii.php ;
  •     
  • plus/lndex.php  ;
  •     
  • data/cache/t.php ;
  •     
  • data/cache/x.php  ;
  •     
  • data/config.php;
  •     
  • data/cache/config_user.php ;
  •     
  • data/config_func.php

Tags - , , ]]>
//www.2w0f.cn/dedecms-web-building-add-column-thumbnail/ <![CDATA[DeDeCMS企业网站建设中增加栏目缩略图的方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Thu, 23 Apr 2015 02:45:05 +0000 //www.2w0f.cn/dedecms-web-building-add-column-thumbnail/ 使用DeDeCMS进行企业网站建设中,一般会创建栏目用于展示产品分类,有时候因为网站功能需求和展示效果的多样性,需要为栏目页添加缩略图功能,具体办法如下?/p>

修改的文件如下:

XML/HTML代码
        
  1. dede/catalog_add.php   
  2.     
  3. dede/catalog_edit.php  
  4.     
  5. dede/templets/catalog_add.htm  
  6.     
  7. dede/templets/catalog_edit.htm  

打开文件夹templets这个目录,在里面新建一个文件夹typeimg,用于独立存放栏目缩略图

新加字段 typeimg

后台执行SQL(前缀默认为dede_ 具体前缀根据自己网站修改):

XML/HTML代码
        
  1. alter table `dede_arctype` add `typeimg` char(100) NOT NULL default '';  

打开dede/catalog_add.php,查找:

XML/HTML代码
        
  1. $queryTemplate = "insert into `dede_arctype`  

将如下代码:

XML/HTML代码
        
  1. (reid,topid,sortrank,typename,typedir,  

替换为:

XML/HTML代码
        
  1. (reid,topid,sortrank,typename,typedir,typeimg,  

将如下代码:

XML/HTML代码
        
  1. ('~reid~','~topid~','~rank~','~typename~','~typedir~',  

替换为:

XML/HTML代码
        
  1. ('~reid~','~topid~','~rank~','~typename~','~typedir~','~typeimg~',  

打开dede/catalog_edit.php,查找:

XML/HTML代码
        
  1. $upquery = "Update `dede_arctype` set  

在其下面新加一?/p>

XML/HTML代码
        
  1. `typeimg`='$typeimg',  

打开dede/templets/catalog_add.htm,查找:

XML/HTML代码
        
  1. <tr> </p> <p> <td height="26">列表命名规则?/span></td>  
  2.     
  3. <td>  
  4.     
  5. <input name="namerule2" type="text" id="namerule2" value="{typedir}/list_{tid}_{page}.html" class="pubinputs" style="width:250px" />  
  6.     
  7. <img src="img/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')"/></td>  
  8.     
  9. </tr>  

在下面增加以下代码:

XML/HTML代码
        
  1. <tr>  
  2.     
  3. <td height="65">栏目图片?/span></td>  
  4.     
  5. <td>  
  6.     
  7. <input name="typeimg" type="text" style="width:250px" id="typeimg" class="alltxt" value="" />  
  8.     
  9. <input type="button" name="set9" value="浏览... "class="coolbg np" style="width:60px" onClick="SelectTemplets('form1.typeimg&activepath=%2Ftemplets%2Ftypeimg&img=yes');" />  
  10.     
  11. (栏目模板里用{dede:field.typeimg /}调用)  
  12.     
  13. </td>  
  14.     
  15. </tr>  

打开dede/templets/catalog_edit.htm,查找:

XML/HTML代码
        
  1. <tr>  
  2.     
  3. <td height="26">列表命名规则?/span></td>  
  4.     
  5. <td> <input name="namerule2" type="text" id="namerule2" value="<?php echo $myrow['namerule2']?>" size="40" class="iptxt" />  
  6.     
  7. <img src="img/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')"/></td>  
  8.     
  9. </tr>  

在下面新增以下代码:

XML/HTML代码
        
  1. <tr>  
  2.     
  3. <td height="65">栏目图片?/span></td>  
  4.     
  5. <td>  
  6.     
  7. <input name="typeimg" type="text" style="width:250px" id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg']?>" />  
  8.     
  9. <input type="button" name="set9" value="浏览... "class="coolbg np" style="width:60px" onClick="SelectImages('form1.typeimg&activepath=%2Ftemplets%2Ftypeimg&img=yes');" />  
  10.     
  11. (栏目模板里用{dede:field.typeimg /}调用)  
  12.     
  13. </td>  
  14.     
  15. </tr>  

完成?/p>

添加或修改图片时?栏目管理》高级选项上传即可?/p>

如果想同时在文章内容页调用,需要修?#92;include\arc.archives.class.php,查找:

XML/HTML代码
        
  1. if($this->ChannelUnit->ChannelInfos['issystem']!=-1)  

将如下代码:

XML/HTML代码
        
  1. $query = "Select arc.*,tp.reid,tp.typedir,ch.addtable from `dede_archives` arc left join dede_arctype tp on tp.id=arc.typeid left join dede_channeltype as ch on arc.channel = ch.id where arc.id='$aid' ";  
  2.     
  3. $this->Fields = $this->dsql->GetOne($query);  

替换为:

XML/HTML代码
        
  1. $query = "Select arc.*,tp.reid,tp.typedir,tp.typeimg,ch.addtable  
  2.     
  3. from `dede_archives` arc  
  4.     
  5. left join dede_arctype tp on tp.id=arc.typeid  
  6.     
  7. left join dede_channeltype as ch on arc.channel = ch.id  
  8.     
  9. where arc.id='$aid' ";  
  10.     
  11. $this->Fields = $this->dsql->GetOne($query);  

Tags - , , ,
, , , , ]]> //www.2w0f.cn/dedecms-security-config-trojan-killer-tool/ <![CDATA[DeDeCMS织梦程序的安全设置方法与木马后门专杀工具]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Tue, 25 Nov 2014 05:46:54 +0000 //www.2w0f.cn/dedecms-security-config-trojan-killer-tool/ 因织?dedecms)安全性太差,导致很多使用该系统的网站被黑客入侵后上传木马病毒,然后黑客利用木马病毒程序对外发送DDOS攻击或被黑客偷偷放置私F等违法内容,给网站带来巨大的危害?/p>

一、DeDe程序安全设置

1.升级到dedecms最新版?(dedecms后台一般支持在线升级,如果不行,请到官方网站查询手工升级办?a target="_blank">www.dedecms.com)

2.安全设置

        
  • 建议将前台所有文章和栏目全部由后台生成为.html静态文件,只保留后台管理目录的PHP文件,其他前台的php文件全部删除(这样可能会影响一些会员注册、文章点击量统计等功能)
  •     
  • 把除后台目录以外的目录全部禁止执行权?/li>    
  • 后台目录由dede改为?dedexxxx 等其他目录名?/li>    
  • 后台目录 设置IP限制,只允许某些信任的IP登录 (如果是使用了CDN技术的虚拟主机,不支持IP限制,可以用后台目录改为较复杂的目录名称来代?

3.添加SQL注入防护脚本(可以预装360安全版本)

4.调整后台设置,如果您的网站没有会员功能,建议把会员功能关闭掉?/p>

5.调整目录权限 (如果是采取删除前台的所有php程序,则这一步可以省略)

主要有data、templets、uploads、install、images、plus这些目录

?)windows系统主机

可通过主机控制面板-目录保护功能操作

?)linux系统主机

可通过ftp在wwwroot目录下建?htaccess文件

XML/HTML代码
        
  1. RewriteEngine on  
  2.     
  3. RewriteCond % !^$  
  4.     
  5. RewriteRule uploads/(.*).(php)$ [F]  
  6.     
  7. RewriteRule data/(.*).(php)$ [F]  
  8.     
  9. RewriteRule templets/(.*).(php)$ [F]  
  10.     
  11. RewriteRule images/(.*).(php)$ [F]  
  12.     
  13. RewriteRule install/(.*).(php)$ [F]  
  14.     
  15. RewriteRule plus/(.*).(php)$ [F]  

用于拦截这些目录的php访问

6. 如果想通过设置目录和文件只读的方式来防止被黑,请通过“文件管理”功能,给整站所有文件设置为只读状态,完成以后,单独对data目录设置为完全控制权限,否则不能登录后台,会提示验证码错误?br />(只读情况下更新网站、发布新产品、新文章可能会遇到麻烦)

二、DedeCMS顽固木马后门专杀工具(适用织梦程序被挂码、入侵的检查和清理?/h2>

下载DedeCMS顽固木马后门专杀工具,解压后编辑修改初始密码,然后上传到wwwroot根目录,然后访问根据提示执行扫描?/span>

需要注意:

        
  1. 跟目录下必须?/span>data目录?/span>/data/common.inc.php文件,如不存在会?ldquo;请将该文件放到您站点的根目录,和index.php同一级目?rdquo;错误?/span>
  2.     
  3. 文件太多执行时间较长,可能超时,可以修改ini_set("memory_limit", "100m")值为ini_set("memory_limit", "500m"),最大不能超?/span>1000M?/span>
        

经核实:?/span>1项可删除;第2项补丁一定要打,才能保证不会被再次入侵;3-5项发现的可疑数据或文件都确是被恶意增加数据和木马文件,可直接清理;第6项列出管理员名,如确定不是自己使用的用户可删除,必须保留自己使用的管理员名?/span>

附织梦程序被挂码之后处理流程?/strong>

        
  1. 首先使用查杀病毒》手工清除木马,清理相应病毒代码。如不能清理需登录ftp下载文件到本地,手工删除病毒代码再上传到主机覆盖相应文件?/span>
  2.     
  3. 使用以上?ldquo;DedeCMS顽固木马后门专杀工具”)方法彻底检查、清理,并打上最新补?/span>
  4.     
  5. 为防止再次被注入、加入病毒代码,建议可开?/span>360防护能更好的保护网站不被入侵?/span>

以下为检查实例:

DeDeCMS织梦顽固木马后门专杀程序下载?/strong>

这个文件只能在登入之后下载。请?注册 ?登入

三、DeDeCMS防止sql注入漏洞的处理方?/h2>

使用360网站监测检测DeDeCMS的sql注入漏洞,首先下载PHP的防护脚本,之后按照下面的方法调?60网站监测代码?/p>

 

1.解压后将360_safe3.php传到要包含的文件的目?/p>

2.在页面中加入防护,有两种做法,根据情况二选一即可?/p>

?)在所需要防护的页面加入代码
require_once('360_safe3.php');
就可以做到页面防注入、跨?br />如果想整站防注,就在网站的一个公用文件中,如数据库链接文件config.inc.php中!
添加require_once('360_safe3.php');来调用本代码

?)常用php系统添加文件
PHPCMS V9 \phpcms\base.php
PHPWIND8.7 \data\sql_config.php
DEDECMS5.7 \data\common.inc.php
DiscuzX2   \config\config_global.php
Wordpress   \wp-config.php
Metinfo   \include\head.php

360网站监测的PHP的防护脚本下载:

这个文件只能在登入之后下载。请?注册 ?登入

 


Tags - , , , ]]> //www.2w0f.cn/dedecms-channel-tag-description-content/ <![CDATA[DeDeCMS的Channel标签调用栏目描述与内容]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Sun, 28 Sep 2014 09:30:20 +0000 //www.2w0f.cn/dedecms-channel-tag-description-content/ Channel标签一般用于循环调用栏目,在用DeDe系统进行网站建设时,经常会利用该标签调用栏目信息,但是,该标签却无法调用栏目description或content标签,我们要做的只是将Description这个属性开启即可?/p>

到你的程序目?include\taglib 找到 channel.lib.php 修改一下文件(78行~94行),如果你想查找所有top最顶层的栏目描述的话修改,以下代码top/son/self都开启了栏目描述?/p>

XML/HTML代码
        
  1. if($type=='top')  
  2.     
  3.     {  
  4.     
  5.         $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description,content 
  6.     
  7.           From `#@__arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";  
  8.     
  9.     }  
  10.     
  11.     else if($type=='son')  
  12.     
  13.     {  
  14.     
  15.         if($typeid==0) return '';  
  16.     
  17.         $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description,content
  18.     
  19.           From `#@__arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line ";  
  20.     
  21.     }  
  22.     
  23.     else if($type=='self')  
  24.     
  25.     {  
  26.     
  27.         if($reid==0) return '';  
  28.     
  29.         $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description,content
  30.     
  31.             FROM `#@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";  
  32.     
  33.     }  

 


Tags - , , ]]>
//www.2w0f.cn/dedecms-formdata-send-email-to-webmaster-mailbox/ <![CDATA[DeDeCMS用户提交的表单数据自动发送到管理员邮箱]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Sun, 10 Aug 2014 21:17:28 +0000 //www.2w0f.cn/dedecms-formdata-send-email-to-webmaster-mailbox/ 用DeDeCMS做企业网站,经常会需要这样的功能,即:用户在网页上提交一个表单数据,可能是:在线订单或客户的联系资料,默认情况下,管理员只有登录后台才能看到提交表单数据,但是操作起来比较麻烦,那么,下面的代码就可以实现将表单数据自动发送到管理员邮箱的功能,这样就方便多了?/p>

打开根目录plus下面的diy.php文件?/p>

大概?5行找到代码:$query "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, $addvalue); ";   

在此代码后面开始加入代码:

XML/HTML代码
        
  1. $mailtitle = $name."提交表单通知";  
  2.     
  3. $mailbody = "称呼?#123;$name}\r\n邮箱?#123;$email}\r\n内容?#123;$message}";  
  4.     
  5. $headers = $cfg_adminemail;  
  6.     
  7. $mailtype = 'TXT';  
  8.     
  9. require_once(DEDEINC.'/mail.class.php');  
  10.     
  11. $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);  
  12.     
  13. $smtp->debug = false;  
  14.     
  15. $smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);  

 


Tags - , ,

注册 ?登入


Tags - , , , ]]> //www.2w0f.cn/dedecms-column-type-search/ <![CDATA[DeDeCMS按分类搜索的功能实现]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Thu, 20 Feb 2014 16:04:34 +0000 //www.2w0f.cn/dedecms-column-type-search/

XML/HTML代码
        
  1. <form action="{dede:field name='phpurl'/}/search.php" name="formsearch">  
  2.     
  3.   <div class="form">  
  4.     
  5.     <h2>搜索</h2>  
  6.     
  7.     <input type="hidden" name="kwtype" value="0" />
        
  8.     
  9.     <input type="hidden" name="searchtype" value="titlekeyword" />  
  10.     
  11.     <input name="keyword" type="text" class="search-keyword" id="search-keyword" />  
  12.     
  13.     <select name="typeid" class="search-option" id="typeid">  
  14.     
  15.       <option value='0' selected='1'>全部栏目</option>  
  16.     
  17.       {dede:channelartlist typeid='top' }  
  18.     
  19.         {dede:type}<option value='[field:id/]'>[field:typename/]</option>{/dede:type}  
  20.     
  21.         {dede:channel type='son' noself='yes'}
        
  22.     
  23.           <option value='[field:id/]'>-[field:typename/]</option>  
  24.     
  25.         {/dede:channel}
  26.     
  27.       {/dede:channelartlist}  
  28.     
  29.     </select>
  30.     
  31.     <input type="submit" class="search-submit">搜索</button>  
  32.     
  33.   </div>  
  34.     
  35. </form>   

 


Tags - , ]]>
//www.2w0f.cn/dedecms-listpage-call-article-body/ <![CDATA[DeDeCMS列表页使用dede:arclist和dede:list标签调用文章正文内容]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Thu, 20 Feb 2014 15:19:58 +0000 //www.2w0f.cn/dedecms-listpage-call-article-body/ 通常dedecms列表和内容页可以利用系统内置标签[field:description/]来调?但有时候后台文章摘要需要其它用?那么这个时候需要调用部分文章正文内容做为摘要显示。实现方法有两种,分别使用dede:arclist标签与dede:list标签?/p>

一、使用dede:arclist标签的实现步骤和方法?/strong>

1、进入后?核心 -> 频道模型 -> 内容模型管理 -> 普通文?-> 更改

2、调用代?

XML/HTML代码
        
  1. {dede:list pagesize='10'}
  2.     
  3. [field:body/]
  4.     
  5. [field:title/]
  6.     
  7. {/dede:list}

3、将内容转化为文字格式并截取字符串[field:body function='cn_substr(html2text(@me),600)'/]

二、使用dede:arclist标签的实现步骤和方法?/strong>

利用了DeDecms可以自定义模型内容数据以及自定义字段的调用原理,把文章模板的body字段看做在自定义的?/p>

1、调用代?/p>

XML/HTML代码
        
  1. {dede:arclist row='10' addfields='body' channelid='1'}
  2.     
  3. [field:body function='cn_substr(html2text(@me),600)'/]
  4.     
  5. {/dede:arclist}

2、代码说?/p>

?)addrields='字段一,字段?hellip;',自定义字段或系统字?/p>

?)function=’cn_substr(html2text(@me),600)’ 将文章内容转化为文字格式

?)channelid,模型编号,文章默认?,查看位置:后台–核心–内容模型管理


Tags - , , , ]]>
//www.2w0f.cn/dedecms-channel-tag-description-keyword/ <![CDATA[DeDeCMS的channel标签调用子栏目描?Description)与关键词(keywords)]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 17 Feb 2014 06:58:44 +0000 //www.2w0f.cn/dedecms-channel-tag-description-keyword/ DeDeCMS的channel标签本不支持调用子栏目的关键词及栏目描述,但建站时列表页往往需要提取关键词以及分类描述这两类数据,具体的实现方法如下:

include\taglib\channel.lib.php文件?6?/p>

XML/HTML代码
        
  1. $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath  

在上述Sql语句添加,keywords,description,修改后的代码如下:

XML/HTML代码
        
  1. $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,keywords,description  

注:蓝色的代码为增加的代?/p>

在模板中(举例,根据自己的代码灵活使用)?/p>

XML/HTML代码
        
  1. {dede:channel type='son'  row='6'  typeid='4'}  
  2.     
  3. <a href="[field:typeurl/]">[field:typename/]</a>  
  4.     
  5. <p>[field:keywords/]</p>  
  6.     
  7. <p>[field:description /]</p>   
  8.     
  9. {/dede:channel}   

如果你的typeid下不存在子栏目的话,系统会默认调用同级栏目,那么修改以上不行,需要修改第111行,修改方法与上边一?/p>
Tags - , ]]> //www.2w0f.cn/wordpress-seo-plugin-collect/ <![CDATA[Wordpress SEO插件]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 15 Jul 2013 09:51:35 +0000 //www.2w0f.cn/wordpress-seo-plugin-collect/ WordPress插件:WordPress SEO by Yoast.

WordPress SEO by Yoast为一?a href="//www.2w0f.cn/category/seo/" target="_blank" title="//www.2w0f.cn/category/seo/" class="mykeyword">搜索引擎优化插件。可以自定义标题,描述以及TAG关键字功能。最好不要和SIMPLE  TAG插件一起使用,据说会有冲突。如果你用的不是太习惯,也可以使用ALL IN ONE SEO插件,比较简单?/p>

WordPress插件:SEO Ultimate

SEO Ultimate是一款非常全面的针对Wordpress的SEO插件,功能十分强大,比WP all in one   seo功能还好,可以检?04页面错误,主要的检测对象可以是搜索引擎“蜘蛛”,并显示导致404页面产生的URL链接;当然也可以在里面设?nbsp;  title、description、keyword非常方便?/p>

WordPress插件:SEO Rank Reporter

SEO Rank  Reporter比较适合英文网站的关键字在GOOGLE的跟踪,根据您选择的关键字,该插件将跟踪您的Google排名,每3天在一个简单到读取图形和报告数据。便于我们分析数据和进一步操作?/p>

WordPress插件:SEO Content Control

SEO Content Control插件可以帮助我们分析网站对于SEO中存在问题,提醒我们哪里少了关键字或者描述,我们需要去改善?/p>

WordPress插件:SEO Smart Links

SEO Smart Links可以自动为我们博文之间串联关键字,便于搜索引擎互动。还可以设置单独的关键字和链接,是否新窗口打开?/p>
Tags - , , , ]]> //www.2w0f.cn/dedecms-verify-code-nodisplay/ <![CDATA[DeDeCMS后台验证码不显示的解决方?DeDecms 5.7)]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Wed, 03 Jul 2013 07:29:34 +0000 //www.2w0f.cn/dedecms-verify-code-nodisplay/ DedeCMS后台验证码不显示或不正常分三种情?/strong>

DedeCMS后台验证码不显示情况一

dedecms后台验证码不显示

Dede后台验证码不显示情况?/span>

dedecms后台验证码不显示

DedeCMS后台验证码不显示情况?/span>

dedecms后台验证码不显示

 

通用解决方案?/p>

取消后台验证码功能,因为没有验证?,不能进后台,所以修改php文件源代?

方法一:

打开dede/login.php 找到如下代码

if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){

ResetVdValue();

ShowMsg('验证码不正确!','login.php',0,1000);

exit;

}

第一行替换为   if(false){

?问题解决 不输验证码后台直接进?/p>

方法二:

打开data/safe/inc.safe.config.php

把代?safe_gdopen = '1,2,3,4,5,6,7'; 中的6,删除即可

DedeCMS后台验证码不显示情况一分析

验证码需要GD库,请检查你的环境是否开启GD?/p>

DedeCMS后台验证码不显示情况二分?/span>

验证码只显示背景,不显示字母,打开验证码生成文?Include/vdimgck.php

找到

for($i=0;$i<$rndcodelen;$i++)

{

$bc = mt_rand(0, 1);

$rndstring[$i] = strtoupper($rndstring[$i]);

$c_fontColor = $fontColor[mt_rand(0,4)];

$y_pos = $i==0 ? 4 : $i*($font_size+2);

$c = mt_rand(0, 15);

@imagettftext($im, $font_size, $c, $y_pos, 19, $c_fontColor, $font_file, $rndstring[$i]);

$lastc = $rndstring[$i];

}

Imagettftext()函数没有成功的执行导致了验证码只显示背景,不显示字母,具体原因为字体文件路径不对。解决方法:

 

XML/HTML代码
        
  1. 确认include/data/fonts/ 里面存在字体文件,默认为ggbi.ttf  
  2.     
  3.   在for($i=0;$i<$rndcodelen;$i++) 上一?加上如下代码:  $font_file= str_replace("\\","/",$font_file);     

 

即把字体文件路径中反斜杠替换成斜?因为我们知道反斜杠有转译字符的功?

$font_file 路经大体?盘符:\appserv\www 系统错误的把反斜?当作转义用了 导致$font_file也就不是一个路径了 所以Imagettftext()函数总是返回错误

加上$font_file= str_replace("\\","/",$font_file);即可解决

Dede后台验证码不显示情况三分?/span>

Include/data/words/words.txt 文件不存?/p>

解决方案?/p>

        
  1. 拷贝一个进?/li>    
  2. 找到代码    'word_type'  => (int)$safe_codetype,   // 1:数字  2:英文   3:单词
  3.     
  4. 换成'word_type'  =>1  (?) 既验证码为数字或英文

Dede后台验证码不显示,全部情况解?。如果原来可以显示后来取消验证码后再设置就无法显示,可以通过覆盖data与include目录试试?/p>
Tags - , ]]> //www.2w0f.cn/dedecms-loop-second-column/ <![CDATA[DeDeCMS循环调用二级栏目]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Sun, 02 Jun 2013 13:20:42 +0000 //www.2w0f.cn/dedecms-loop-second-column/

XML/HTML代码
        
  1. {dede:channelartlist typeid='20'}  
  2.     
  3. <li><a href="{dede:field name='typeurl'/}" title="{dede:field name='typename'/}">{dede:field name='typename'/}</a></li>  
  4.     
  5. {dede:sql sql='Select * from `dede_arctype` where reid=~id~ and ishidden=0 ORDER BY id'}  
  6.     
  7. <li><a href="[field:typedir function="cn_substr(@me,200,9)" /]">[field:typename/]</a></li>  
  8.     
  9. {/dede:sql}  
  10.     
  11. {/dede:channelartlist}
        

ishidden字段含义是该栏目是否隐藏,如果ishidden=1,则表示该栏目已被设置为隐藏?/p>
Tags - , , ]]> //www.2w0f.cn/similar-website-dedecms-prevent-collection/ <![CDATA[复制站点与DeDecms防采集的方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 26 Mar 2012 07:36:52 +0000 //www.2w0f.cn/similar-website-dedecms-prevent-collection/ 去年年底,某客户找我帮忙制作了一个企业网站,考虑到网站日后要进行搜索引擎推广,因此,网站在SEO上必须具备搜索引擎友好性,权衡左右,最终我选择了DeDeCMS,这样可以在URL、PageTitle、TextBlock、LinkBlock、Auto Sitemap、Related Article几方面及早进行SEO布局。于是,在栏目规划、布局设计、模板制作阶段,我便将各种SEO元素充分融入整个制作阶段,期望站点上线后,搜索排名权重可以快速积累。特别是在模板代码撰写方面,有效的控制链接输出与导入,尽可能提高内链接的相关性以及关键词匹配的位置,并去除了无用的网页噪音信息,使每类页面主题都特别突出?/p>

果不其然,网站正式发布后,网站收录比例很快达?0%,绝大多数产品终端页被收录,部分资讯页面被收录,更重要的是:行业关键词排名与产品关键词排名进步飞速;整个网站在SEO运转中呈良性发展趋势。客户开始接手网站并正常更新站点内容,按照设定的计划,一切本应该顺利进展?/p>

然而就在近期,网站SEO表现开始下滑,首当其冲的是网页收录数量,在百度统计后台显示的页面索引量与搜索框中site命令返回结果数差别明显,site命令显示只有2个页面被收录,均是首页,带www与不带www的两个版本的首页。除此之外,当资讯被正常更新后,百度很快索引了,短时间内通过site命令可以返回结果,但时间不长即又发现收录失效。综合上述情况,我认为网站已经被百度降权了?/p>

为了找到问题所在,我研究了各个方面的影响因素,结果发现:(1)除了正常更新网站内容外,企业方也在积极运作外链,建设外链本来是好事,但却用错了方式,参与了资源站的链轮;(2)网上惊现模板相同、内容相同、品牌不同的仿制站,而且仿制站在百度收录也是只有首页,与客户网站“惊人的相?rdquo;?

1、关于链轮问题,还好我及时发现并制止了这种行为,由于只有几篇产品页参与了链轮,时间不长,应该不至于影响如此之大,何况还是自身资源站点?/p>

2、关于复制站点,已经很少见了,大部分人都会有意识的形成站点内容或者组织形式上的差异化;而客户网站出现这样的SEO症状,恐怕关键就在于仿制站点,当在我看到仿制站的一刻我彻底无语了,除了企业品牌名称不同,网站其他东西我都太清楚了;我很想吐槽,可回头一想现在的互联网不就流行各处抄袭的风气吗,也许习惯了就好,可我TM实在不能忍受的是,模?00%仿制就算了,数据原封不动的采集过去也罢了,拜托,你TMD敢不?9%雷同的站点整体发布出来吗!你TMD搞SEO不知道相似站点啊!你TMD仿站还能把我写的自动更新网站地图文件sitemap.php也能仿制过去!做SEO的伤不起?

吐槽归吐槽,问题还是需要解决的,采用了几下的办法:

1、调整模板数据调用规则与新内容块布置

新内容块产生将页面主题关键词更分散一些,同时调整数据调用规则,让仿制站点的数据与自身页面数据产生差异性,降低复制网站SEO问题的负面影响?/p>

2、找到防止内容采集的办法

DeDeCMS自身有防采集混淆字符串的功能,但这种防采集的办法对SEO很不利,你总不想让搜索蜘蛛看到网页中有不少隐藏文本吧,而且这些文本会影响蜘蛛对信息块主题的判断,影响关键词排名,其实,DeDeCMS没有根本性的防采集的方法,道高一尺魔高一丈啊,只要你的信息通过页面的方式发布出来,总能找到采集的方法;综合网上收集的信息,我采纳了两种办法,只能放置最初级的采集:

?)办法一:复制网页正文内容时自动添加版权信息

JavaScript代码
        
  1. <script language="javascript" type="text/javascript">  
  2.     
  3. <!--  
  4.     
  5. document.body.oncopy = function () {  
  6.     
  7. setTimeout( function () {  
  8.     
  9. var text = clipboardData.getData("text");  
  10.     
  11. if (text) {  
  12.     
  13. texttext = text + "\r\n(这里是你的文章版权信息,去掉括号)?quot;+location.href;  
  14.     
  15. clipboardData.setData("text", text);  
  16.     
  17. }  
  18.     
  19. }, 100 )  
  20.     
  21. }  
  22.     
  23. -->  
  24.     
  25. </script>  

将以上代码放置在文章页模板中正文结束后面即可。我测试了下该方法,只针对IE浏览器有效,而Firefox、遨游、Google Chrome均无效?/p>

?)办法二:使页面代码具有唯一?/p>

一般别人采集的时候都是要获取内容开始的代码和结束的代码,而且要唯一性的,所以填的开始代码大多是?lt;div class="title">。这样,我们在这个class后面加上文章的ID值,改成这样<div class="title"  id="{dede:field.id/}">,这?#123;dede:field.id/}在dedecms中是获取当前文章的ID值,那么生成的每一篇文章的ID值都不一样,这里的开始代码也就都不一样了,这样别人就采集不到了,采一次只能采一篇?/p>

我们制作模板的时候在在body标记附近?lt;div class="abc">修改?lt;div class="abc {dede:field.id/}">,注意是空格+{dede:field.id/},这样div的class还是没有变,但产生了<div class="abc 文ID">,这段代码在每篇文章的内文页均是唯一性的,或者在html标记里插入id={dede:field.id/},比如:<div id={dede:field.id/}>?lt;body id={dede:field.id/}>,这?#123;dede:field.id/}在dedecms中是获取当前文章的ID值,这样别人就采集不到了,采一次只能采一篇。当然,别人可以使用过滤规则来去掉,但是假如我在所有的class里插入文?ID,或者插入id=文ID这样的。那他就只能采集整个页面,然后再过滤,使采集变得更加复杂?br />
缺点:如果插?#123;dede:field.id/}不够多的话别人可以用过滤规则过滤掉。但是对于一些站群采集软件来说,这一招足以防止他们采集了?/p>

3、升级DeDeCMS至最新版

DeDeCMS旧版有漏洞,很容易被黑,要么就是嵌入各种广告代码,要么就是被无端增加超级多的隐藏链接,所以,务必要升级到最新版?/p>
Tags - , , ]]> //www.2w0f.cn/dedecms-tag-length/ <![CDATA[DeDeCMS文章Tag标签长度与字符数限制]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Wed, 14 Mar 2012 14:54:18 +0000 //www.2w0f.cn/dedecms-tag-length/

1.修改数据?br /> 
进入数据库,修改表dede_tagindex和表dede_taglist的tag字段,将字段类型修改?varchar,字段值限制都修改?55
 
2.程序文件修改
 
DeDeCMS V5.3版本:在include/archives.func.php文件中查找:

DeDeCMS V5.7版本:在include/helpers/archive.helper.php文件中分别查找:

if(isset($tag[12]) 和if(isset($tag[20])

找到后,都修改为?/p>

if(isset($tag[255])


Tags - , , ,

B、将解压后得到的ueditor文件夹拷贝到织梦系统中的include文件夹下(include文件夹里可以看到ckeditor文件夹,下左?,并?ueditor文件夹里的inc_fun_funAdmin.php文件覆盖include\inc\下的同名文件(下右图?/p>

C、修改网站里的data\config.cache.inc.php文件里的“$cfg_html_editor = 'ckeditor'”?ldquo;$cfg_html_editor = 'ueditor'”(data目录与include同级)?/p>


Tags - , , ]]> //www.2w0f.cn/dedecms-baidu-share-button-plugin/ <![CDATA[DeDeCMS的百度分享按钮插件]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Thu, 23 Feb 2012 17:24:50 +0000 //www.2w0f.cn/dedecms-baidu-share-button-plugin/ 1、下载百度分享插件的DeDeCMS版本?/p>

这个文件只能在登入之后下载。请?注册 ?登入

2、使用管理员账号登录您的站点后台管理中心,单?quot;模块"标签,然后单击右侧的"上传新模?quot;按钮,单?quot;文件选择"按钮,按照您的织梦cms的编码,选择您下载的相应编码的xml文件,单?quot;确定"即可完成安装?/p>

3、若安装成功,页面跳转到百度分享插件的信息页,此时您只需点击页面左侧?quot;百度分享插件"按钮,即可进入设置页。在此页中,您需要复制从百度分享网站获取的分享按钮代码,还可以自定义您的分享内容。设置结束后,单击下方的"生成文件"按钮保存设置?/p>

4、保存设置后,您只需在您页面的相应位置处添加如下代码即可使用百度分享按钮?#123;dede:include filename="baidushare.htm"/}。以文章内容页为例,您只需要打开您站点上的文章内容页模板,在标签之前或该div之后添加上述代码即可?/p>

5、保存设置后,您只需在您页面的相应位置处添加如下代码即可使用百度分享按钮?span style="font-weight:700; color:#f00;">{dede:include filename="baidushare.htm"/}。以文章内容页为?span style="font-weight:700; color:#f00;">(article_article.htm)您只需要打开您站点上的文章内容页模板,在标签之前或该div之后添加上述代码即可?/p>

6、保存之后,您还需要更新文?html使您的更改生效。只需?quot;生成"选项卡中单击"更新文HTML",最后选择开始生成即可?/p>


Tags - , , ]]>
//www.2w0f.cn/dedecms-www-defaultindex-301/ <![CDATA[DeDeCMS默认首页及WWW域的301跳转]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Sun, 25 Sep 2011 05:50:41 +0000 //www.2w0f.cn/dedecms-www-defaultindex-301/ 你是否留心过:通过域名访问网站首页时,网页返回Http状态码是什么?甚至访问内页时,Http状态码又是什么吗?/span>

大多数人可能会想当然的认为首页返回的肯定?00,因为我们很容易观察到首页能否可以正常打开以及URL是否发生过明显跳转,然而,真的如我们预想的那样吗!

在近期接手的SEO项目里,我们就遇到类似的问题?/p>                                                                                                                                                                                                                                                        
URL
            
Http状态码
//***.com302,跳转至//***.com/index.html
//***.com/index.html200
//www.***.com302,跳转至//www.***.com/index.html
//www.***.com/index.html200
内页500

 

以上数据暴露出几个严重的SEO问题?/p>

1、主域与www域之间的跳转问题

2、域访问与默认首页之间的跳转问题

3、页面可以打开但是状态码返回的不?00

上述SEO问题的处理逻辑?/p>

1、通常情况下,网站主要使用www域,而不使用主域(国内网民的访问习惯),考虑到SEO因素,为了避免复制网页问题,一般会将主域做301跳转然后重定向到www二级域,这样搜索引擎就不会收录两个版本的网站首页,也避免了页面权重分流,具体实现方法,可以参考文?ldquo;如何实现两个域名内页之间?01跳转"

2、域访问与默认首页之间本不应该存在任何跳转动作。试想一下,如果直接访问网站域名却发生了跳转,无论是301还是302,首页权重都会被降低,这对SEO而言是多么可怕的一件事情,首页低权重,内页也在劫难逃!正确的SEO处理方式是:访问域时,直接返?00。以DedeCMS为例,如果网站的默认首页不是index.html或者index.php优先级高于index.html,当以域方式访问网站首页时,程序默认设置为URL发生301跳转至index.html?/p>

3、用工具全面检测下页面Http状态码,确认页?00?/p>

DeDeCMS解决www域跳转与默认首页跳转问题的方?/strong>?/p>

修改根目录下的index.php文件,用以下代码进行替换?/p>

PHP代码
        
  1. <?php  
  2.     
  3. //主域?01跳转到www  
  4.     
  5. $redirect301=1; //301跳转开关,1代表打开?代表关闭  
  6.     
  7. $index_file='index.html'; //指定网站默认首页文件,DeDeCMS设置为index.html,不支持SSI(shtml/shtm?/span>  
  8.     
  9.   
  10.     
  11. if(substr($_SERVER['SERVER_NAME'],0,4)!='www.'&&$redirect301) //判断URL中是否带www  
  12.     
  13. {  
  14.     
  15. header('HTTP/1.1 301 Moved Permanently');  
  16.     
  17. header('Location://www.'.$_SERVER['SERVER_NAME']); //301跳转到www  
  18.     
  19. exit();  
  20.     
  21. }  
  22.     
  23. if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))  
  24.     
  25. {  
  26.     
  27.     header('Location:install/index.php');  
  28.     
  29.     exit();  
  30.     
  31. }  
  32.     
  33. //自动生成HTML?/span>  
  34.     
  35. if(isset($_GET['upcache']))  
  36.     
  37. {  
  38.     
  39.     require_once (dirname(__FILE__) . "/include/common.inc.php");  
  40.     
  41.     require_once DEDEINC."/arc.partview.class.php";  
  42.     
  43.     $GLOBALS['_arclistEnv'] = 'index';  
  44.     
  45.     $row = $dsql->GetOne("Select * From `#@__homepageset`");  
  46.     
  47.     $row['templet'] = MfTemplet($row['templet']);  
  48.     
  49.     $pv = new PartView();  
  50.     
  51.     $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);  
  52.     
  53.     $pv->SaveToHtml(dirname(__FILE__).'/index.html');  
  54.     
  55.     include(dirname(__FILE__).'/index.html');  
  56.     
  57.     exit();  
  58.     
  59. }  
  60.     
  61. include(dirname(__FILE__).'/'.$index_file); //联接网站默认首页文件  
  62.     
  63. ?>  

Tags - , , ]]>
//www.2w0f.cn/dedecms-modify-title-description-length/ <![CDATA[DeDeCms文章关键字与摘要字数的修改方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 22 Aug 2011 19:50:57 +0000 //www.2w0f.cn/dedecms-modify-title-description-length/ DeDeCms文章关键字与摘要字数的修改方?/p>

第一步:

进入phpmyadmin(DB),查看dede_archives表,默认的关键字与摘要字段是?/p>

        
  • keywords char(30)
  •     
  • description varchar(255)

修改数数据库表acttype中的keywords的类型为varchar 长度?55,修改数字自定,该数字除?就是汉字的个?


第二步:

修改文件后台管理目录?个文件:article_add.php ?article_edit.php,分别搜索:

代码
        
  1. $keywords = cn_substrR($keywords,60);  

将数字改成想要的数字?/p>

第三步:

修改后台管理目录中文?inc/inc_archives_functions.php,搜?/p>

代码
        
  1. if(strlen($keywords.$k)>=60 
        

将数字改成想要的数字?/p>
Tags - ,

, , , ]]>
//www.2w0f.cn/dedecms-rss-sitemap-url-problem/ <![CDATA[DeDeCMS生成RSS地图地址出错的修改方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 21 Mar 2011 14:59:10 +0000 //www.2w0f.cn/dedecms-rss-sitemap-url-problem/ DeDeCMS生成RSS地图时出错,RSS文件中的URL网址出现两次,打开生成的data/rss/*.xml发现链接都加变成了如下的格式?/p>

引用

//www.2w0f.cn/ //www.2w0f.cn/data/rss/16.xml
//www.2w0f.cn/ //www.2w0f.cn/data/rss/15.xml
//www.2w0f.cn/ //www.2w0f.cn/data/rss/14.xml
//www.2w0f.cn/ //www.2w0f.cn/data/rss/59.xml
//www.2w0f.cn/ //www.2w0f.cn/data/rss/49.xml

如果你遇到了该问题,具体的解决方法如下:

将Plus目录下Rrss.htm文件源码中fullurl改为arcurl,即?/p>

修改代码
        
  1. ?<link>[field:fullurl/]</link>  
  2.     
  3. 修改?<link>[field:arcurl/]</link>  

 

 


Tags - , , ]]>
//www.2w0f.cn/dedecms-tag-urlrewrite-apache-iis/ <![CDATA[DeDeCMS Tag伪静态在Apache及IIS中的实现方法]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 14 Mar 2011 06:50:00 +0000 //www.2w0f.cn/dedecms-tag-urlrewrite-apache-iis/ 一、Apache Web Server环境搭建的DeDeCMS,要实现Tag伪静态,需要使?htaccess设置Rewrite规则,具体实现请按如下步骤操作?/p>

1、进入dedecms后台,开启伪静?br />2、打开目录 \include\taglib\tag.lib.php 文件
查找
$row['link'] = $cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
替换?br />$row['link'] = $cfg_cmsurl.”/tags/”.urlencode($row['keyword']);
到一步,Tag的链接已经修改成tags/keywords的形式了。这种目录形式非常好,很利于收录,包括我们做长尾关键词优化?br />3、设置apache Rewrite规则
新建.htaccess文件,具体内容为?br />

引用

RewriteEngine On
RewriteBase /
RewriteRule ^tags/(.*)$ /tags.php?/$1


4、修改具体涉及到的模板页面中tags的导航,以便导航链接仍为根目?tags.php
5、最后生成一遍全站,就成功了?/p>

PS:在后台开启伪静态后,如果栏目页或内容页使用的是动态URL,则需要设置一下栏目页及内容页?htaccess规则
如下?

引用

RewriteEngine On
RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule ^plus/view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1
RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2

PS:以上操作过程中如果没有修改目录?即tags.php),安上述操作即可实现Tag的伪静态;但由于tag这个词本身已在搜索引擎被人为降低权重,所以实际测试时我修改了目录名,于是暴露出一个新的问题:Tag页翻页的ULR规则是错误的;检查了部分代码,还是无法找到问题的根源,有可能是需要在.htaccess文件中补充一条rewrite规则,也可能是哪块的源代码没有修正为新的目录名称?/span>

二、IIS Web Server环境搭建的DeDeCMS,要实现Tag伪静态,具体操作如下?/p>

1、进入dedecms后台,开启伪静?/p>

2、修?/include/taglib/tag.lib.php
查找
//$row['link'] = $cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
修改?br />$row['link'] = $cfg_cmsurl.”/tags/”.urlencode($row['keyword']).”/”;

3、新建httpd.ini 文件,并设置重写规则

引用

RewriteRule ^(.*)/tags\.html $1/tags\.php
RewriteRule ^(.*)/tags/(.*).html $1/tags\.php\?$2


Tags - , , , ]]>
//www.2w0f.cn/dedecms-article-call-tag-and-keyword/ <![CDATA[DeDeCMS文章页调用文章Tag或调用标签关键词]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 14 Mar 2011 06:07:12 +0000 //www.2w0f.cn/dedecms-article-call-tag-and-keyword/ DeDeCMS要实现在文章页调用文章Tag或调用关键词标签内容,都只需对文章内文页的模板文件进行简单的修改即可。文章页模板文件默认为:templets/default/article_article.htm,将代码插入在正?#123;dede:field.body/}标签下面。自己可以定义CSS显示标签样式?/p>

一、DeDeCMS文章页调用文章Tag

在模板文件中插入的代码如下:


引用

文章Tag?#123;dede:tag row='8' sort='week'}<a href='[field:link/]' target="_blank">[field:tag /]</a> {/dede:tag}

 

关于Tag标签的解释说明:

引用

tag|TAG调用

标签名称:tag

功能说明:TAG调用标签

适用范围:全局使用

基本语法?/p>

{dede:tag sort='new' getall='0'}<a href='[field:link/]'>[field:tag /]</a>{/dede:tag}相关函数?/p>

文件\include\taglib\tag.lib.php??/p>

function lib_tag(&$ctag,&$refObj)

参数说明?/p>

row='30' 调用条数

sort='new' 排序方式 month,rand,week

getall='0' 获取类型 0 为当前内容页TAG标记?为获取全部TAG标记

二、DeDeCMS文章页调用标签关键词

在模板文件中插入的代码如下:


引用

{dede:field name='keywords' runphp='yes' }
    if(!empty(@me))
    {
        $kws = explode(' ',@me);
        @me = "";
        foreach($kws as $k)
        {
            @me .= "<a href='/plus/search.php?keyword=".urlencode($k)."' target=_blank >$k</a> ";
        }
         @me= str_replace(' ', ' ',trim(@me));
    }
{/dede:field}


Tags - , ]]>
//www.2w0f.cn/dedecms-document-keywords-list-make/ <![CDATA[DeDeCMS文关键词列表页自动生成功能]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 14 Mar 2011 05:09:32 +0000 //www.2w0f.cn/dedecms-document-keywords-list-make/ DeDeCms文关键词自动生成列表页?/p>


一、利?文关键词维?>分析系统内的关键?>检测已有的关键?功能,自动获取关键字链接网址,修改如下:找到 dede\article_keywords_make.php 80?/p>

引用

        
  1. foreach($wsnew as $k=>$v)  
  2.     
  3. {  
  4.     
  5. if(strlen($k)>20)  
  6.     
  7. {  
  8.     
  9. continue;  
  10.     
  11. }  
  12.     
  13. $dsql->SetQuery("Insert Into `dede_keywords`(keyword,rank,sta,rpurl) Values('".addslashes($k)."','$v','1','')");  
  14.     
  15. $dsql->Execute();  
  16.     
  17. }  

替换为:

引用

        
  1. foreach($wsnew as $k=>$v)  
  2.     
  3. {  
  4.     
  5. $rpurl="";  
  6.     
  7. $myrow = $dsql->GetOne("SELECT  distinct concat(replace(b.sitepath,'{cmspath}',''),'/',(case a.filename  when '' then a.id else a.filename end),'.html') rpurl FROM  dede_archives a,dede_arctype b where a.typeid=b.id And (a.keywords='$k' or a.keywords like'$k,%' or a.keywords like'%,$k'or a.keywords like'%,$k,%') ");  
  8.     
  9. if(is_array($myrow))  
  10.     
  11. {  
  12.     
  13. //注意?GLOBALS['cfg_basehost'] 样式类似?//www.2w0f.cn,后面没有反斜杠;  
  14.     
  15. $rpurl = $GLOBALS['cfg_basehost'].trim($myrow['rpurl']);  
  16.     
  17. }  
  18.     
  19. $dsql->SetQuery("Insert Into `dede_keywords`(keyword,rank,sta,rpurl) Values('".addslashes($k)."','$v','1','$rpurl')");  
  20.     
  21. $dsql->Execute();  
  22.     
  23. }  

二、在templets\default\目录下新?keywords.htm 模板文件(如果已自定义模板路径,此处选择对应的目录);keywords.html模板页面的源码保存为?

引用

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>DedeCms关键词记录单</title>
</head>
<body>
<div>
<dl>
<dt>DedeCms关键词记录单?lt;/dt>
<dd>
<ul>
{dede:sql sql='Select * from dede_keywords order by aid}
<li>[field:aid/] - <a href='[field:rpurl/]' target='_blank'>[field:keyword/]</a></li>
{/dede:sql}
</ul>
</dd>
</dl>
</div>
</body>
</html>

三、进入DedeCms后台管理界面?/p>

        
  1. 生成->HTML更新->更新主页HTML,进?ldquo;主页更新向导?rdquo;页面?nbsp; 
  2.     
  3. 设置“选择主页模板?rdquo;?ldquo;default/keywords.htm”?nbsp; 
  4.     
  5. 设置“主页位置?rdquo;?ldquo;../keywords.html”?nbsp; 
  6.     
  7. 设置“相关选项?rdquo;?ldquo;不保存当前选项”?nbsp; 
  8.     
  9. 最后点?ldquo;预览主页”?ldquo;更新主页HTML”  

即可生成“DedeCms文关键词列表页”,示例图?/p>

必须说明的是,DeDeCMS系统从文?中提炼出的关键词未必非常精准,而且有时候往往偏离站点主题,如果为这些非主题关键词插入超链接,则会导致站内链接相关性降低,不利于SEO,因此,我们需要进行一定程度的人工维护,对非主题关键词不要插入超链接。DeDeCMS文关键词列表页完全可以作为站内关键词的网站地图页,你可以引导搜索蜘蛛主动爬行该页面,丢关键词排名会有一些帮助?/p>
Tags - ,

, ]]>
//www.2w0f.cn/boblog-copyright/ <![CDATA[修改BoBlog底部版权信息]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Fri, 04 Mar 2011 09:23:38 +0000 //www.2w0f.cn/boblog-copyright/ 我必须声明,这篇文章的本意并不是教你如何去除Boblog的版权标记;我非常尊重Bob的劳动成果以及一直以来为完善Boblog产品而付出的时间、精力,当初搭建Blog时使用Boblog正是觉得它是一款有潜力的产品,所以对其一直很是支持,尽管后续的发展并不没有预期的好,不过作为使用者还是应该自觉遵守产品版权信息?/p>

对Boblog底部版权信息的展示效果我感到不是很满意,因此,决定重新调整展示方式使其变得更加有序;原以为直接修改模板就可以了,但后来发现它?ldquo;受保护的项目,不可删除或更改?rdquo;,模板里没有块项目的代码,要对其进行修改就需要找到该版权标记的源文件位置所在?/p>

经过搜索,在Boblog?inc\mod_basic.php 文件的最下面找到了页面底部的版权标记。代码如下:

引用

$blogitem['copyright']+=array('type'=>'html', 'code'=>" Powered by <a href=\"//www.bo-blog.com\" target=\"_blank\">Bo-Blog {$blogversion}</a><span id=\"footer-security\"><a href=\"//www.cnbct.org\" target=\"_blank\" title=\"Code detection by Bug.Center.Team\"><img src=\"images/others/detect.gif\" alt=\"Code detection by Bug.Center.Team\" border=\"0\" /></a></span>");


$blogitem['mii']+=array('type'=>'link', 'url'=>'//www.miibeian.gov.cn', 'text'=>'<br/>'.$mbcon['miinum'], 'target'=>'_blank');

$blogitem['columnbreak']+=array('type'=>'block', 'name'=>'columnbreak', 'title'=>'1', 'content'=>'1', 'extend'=>1);


Tags - , ]]>
//www.2w0f.cn/dedecms-friendlink-horizontal-display/ <![CDATA[DeDeCMS友情链接标签横排输出]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Fri, 04 Mar 2011 04:12:41 +0000 //www.2w0f.cn/dedecms-friendlink-horizontal-display/ DeDeCMS的友情链接标签如何做到横排显示?有三种修改方法:

 

模板标签代码
        
  1. 在Dedecms首页模版中直接写入代?span>:{dede:flink linktype='2' row='24'}[field:link /]{/dede:flink}  

 

HTML代码
        
  1. 找到\include\taglib\flink.lib.php文件,将以下代码if(trim($ctag->GetInnerText())==”) $innertext = “<li>[field:link /]</li>”;中的<li>?lt;/li>去掉,然后在Dedecms首页模版中调?span>?#123;dede:flink row='24' linktype='2' /}  

 

SQL代码
        
  1. 直接从数据库调用友情链接{dede:sql sql="Select * From dede_flink where logo = '' order by id desc"}<a target="_blank" href="[field:url/]" title="[field:webname/]">[field:webname/]</a>{/dede:sql}  

 


Tags - , , ]]>
//www.2w0f.cn/windows-apache-php-mysql/ <![CDATA[Apache+php+mysql在windows下的安装与配置图解]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 21 Feb 2011 12:51:50 +0000 //www.2w0f.cn/windows-apache-php-mysql/ 先准备好软件?/p>

Apache官方下载地址?a target="_blank">apache_2.0.55-win32-x86-no_ssl.msi?a target="_blank">更多版本在这?/a>?/p>

php官方下载地址?a target="_blank">php-5.0.5-Win32.zip?a target="_blank">更多镜像下载地址?a target="_blank">更多版本下载?/p>

mysql官方下载地址?a target="_blank">mysql-4.1.14-win32.zip?a target="_blank">更多镜像下载地址?a target="_blank">更多版本下载?/p>

一、安装Apache,配置成功一个普通网站服务器

运行下载好的“apache_2.0.55-win32-x86-no_ssl.msi”,出现如下界面:

 

出现Apache HTTP Server 2.0.55的安装向导界面,?ldquo;Next”继续

 

确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续

 

将Apache安装到Windows上的使用须知,请阅读完毕后,?ldquo;Next”继续

 

设置系统信息,在Network  Domain下填入您的域名(比如:goodwaiter.com),在Server  Name下填入您的服务器名称(比如:www.goodwaiter.com,也就是主机名加上域名),在Administrator's Email  Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@xinhuanet.com),上述三条信息仅供参考,其中联系电子邮件地址   会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认?0端口,并作为系统  服务自动启动;另外一个是仅为当前用户安装,使用端?080,手动启动。一般选择如图所示。按“Next”继续。]

 

选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续

 

出现选择安装选项界面,如图所示,左键点?ldquo;Apache HTTP Server  2.0.55”,选择“This feature, and all subfeatures, will be installed on local  hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘?rdquo;。点?ldquo;Change...”,手动指定安装目录?/p>

 

我这里选择安装?ldquo;D:\”,各位自行选取了,一般建议不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件也清除了。?ldquo;OK”继续?/p>

 

返回刚才的界面,?ldquo;Next”继续?/p>

 

确认安装选项无误,如果您认为要再检查一遍,可以?ldquo;Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装?/p>

 

正在安装界面,请耐心等待,直到出现下面的画面?/p>

 

安装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,?ldquo;Finish”结束Apache的软件安?/p>

 

我们来熟悉一下这个图标,很方便的,在图标上左键单击,出现如下界面,有“Start(启动)”?ldquo;Stop(停止)”?ldquo;Restart(重启动?rdquo;三个选项,可以很方便的对安装的Apache服务器进行上述操作?/p>

 

好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打“//127.0.0.1”,点“转到”,就可以看到如下页面,表示Apache服务器已安装成功?/p>

 

现在开始配置Apache服务器,使它更好的替我们服务,事实上,如果不配置,你的安装目?nbsp;  下的Apache2\htdocs文件夹就是网站的默认根目录,在里面放入文件就可以了。这里我们还是要配置一下,有什么问题或修改,配置始终是要会的,  如图所示,“开?rdquo;?ldquo;所有程?rdquo;?ldquo;Apache HTTP Server 2.0.55”?ldquo;Configure Apache  Server”?ldquo;Edit the Apache httpd conf Configuration file”,点击打开?/p>

 

XP的记事本有了些小变化,很实用的一个功能就是可以看到文件内容的行、列位置,按下图所  示,?ldquo;查看”,勾?ldquo;状态栏”,界面右下角就多了个标记?ldquo;Ln 78, Col 10”就表?ldquo;?78,列  10”,这样可以迅速的在文件中定位,方便解说。当然,你也可以通过“编辑”?ldquo;查找”输入关键字来快速定位。每次配置文件的改变,保存后,必须在  Apache服务器重启动后生效,可以用前面讲的小图标方便的控制服务器随时“重启?rdquo;?/p>

 

现在正式开始配置Apache服务器,“Ln 228”,或者查找关键字“DocumentRoot”(也就是网站根目录),找到如下图所示地方,然后?quot;"内的地址改成你的网站根目录,地址格式请照图上的写,主要是一般文件地址?ldquo;\”在Apache里要改成“/”?/p>

 

“Ln 253”,同样,你也可以通过查找“

 

“Ln321”,DirectoryIndex(目录索引,也就是在仅指定目录的情况下,?nbsp;  认显示的文件名),可以添加很多,系统会根据从左至右的顺序来优先显示,以单个半角空格隔开,比如有些网站的首页是index.htm,就在光标那里加?nbsp; “index.htm ”文件名是任意的,不一定非?ldquo;index.html”,比?ldquo;test.php”等,都可以?/p>

 

这里有一个选择配置选项,以前可能要配置,现在好像修正过来了,不用配置了,就是强制所有输   出文件的语言编码,html文件里有语言标记(,这个就是设定文语言为gb2312)的也会强制转换。如果打开的网页出现乱码,请先检查网页内有没有上  ?html语言标记,如果没有,添加上去就能正常显示了。把“# DefaultLanguage nl”前面?ldquo;#  ”去掉,把“nl”改成你要强制输出的语言,中文是“zh-cn”,保存,关闭?/p>

 

好了,简单的Apache配置就到此结束了,现在利用先前的小图标重启动,所有的配置就生?nbsp;  了,你的网站就成了一个网站服务器,如果你加载了防火墙,请打开80?080端口,或者允许Apache程序访问网络,否则别人不能访问。如果你有公?nbsp; IP(一般ADSL或电话拨号上网的都是),就可以邀请所有能上网的朋友访问使用//你的IP地址(IP地址查询可访问http:  //www.goodwaiter.com,查询内容内即是)你的网站了;如果你没有公网IP,也可以把内网IP地址告诉局域网内的其它用户,让他们通过  //你的内网IP地址,访问你的网站?/p>

二、php的安装、以module方式,将php与apache结合使你的网站服务器支持php服务器脚本程?/strong>

将下载的php安装文件php-5.0.5-Win32.zip右键解压缩?/p>

 

指定解压缩的位置,我的设定在“D:\php”

 

查看解压缩后的文件夹内容,找?ldquo;php.ini-dist”文件,将其重命名?nbsp; “php.ini”,打开编辑,找到下面图中的地方?Ln385,有一?ldquo;register_globals =  Off”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设?ldquo;Off”,就只能?ldquo;$_POST['变量?]?_GET['变量?nbsp;  ']”等来取得送过来的值,如果设为“On”,就可以直接使用“$变量?rdquo;来获取送过来的值,当然,设?ldquo;Off”就比较安全,不会让人轻易将网页间传?nbsp; 的数据截取。这个值是否改?ldquo;On”就看自己感觉了,是安全重要还是方便重要?

 

这里还有一个地方要编辑,功能就是使php能够直接调用其它模块,比如访问mysql,如?nbsp; 图所示,Ln563,选择要加载的模块,去掉前面的  “;”,就表示要加载此模块了,加载的越多,占用的资源也就多一点,不过也多不到哪去,比如我要用mysql,就要把“;extension=  php_mysql.dll”前的“;”去掉。所有的模块文件都放在php解压缩目录的“ext”之下,我这里的截图是把所有能加载的模块都加载上去了,  前面?ldquo;;”没去掉的,是因为“ext”目录下默认没有此模块,加载会提示找不到文件而出错。这里只是参考,一般不需要加载这么多,需要的加载上就可以  了,编辑好后保存,关闭?/p>

 

如果上一步加载了其它模块,就要指明模块的位置,否则重启Apache的时候会提示“找不?nbsp; 指定模块”的错误,这里介绍一种最简单的方法,直接将php安装路径、里面的ext路径指定到windows系统路径?mdash;—?ldquo;我的电脑”上右键,“?nbsp; ?rdquo;,选择“高级”标签,点?ldquo;环境变量”,在“系统变量”下找?ldquo;Path”变量,选择,双击或点击“编辑”,将“;D:\php;D:\php  \ext”加到原有值的后面,当然,其中?ldquo;D:\php”  是我的安装目录,你要将它改为自己的php安装目录,如下图所示,全部确定。系统路径添加好后要重启电脑才能生效,可以现在重启,也可以在所有软件安装或  配置好后重启?/p>

 

现在开始将php以module方式与Apache相结合,使php融入Apache,照?nbsp; 前的方法打开Apache的配置文件,Ln 173,找到这里,添加进如图所示选中的两行,第一?ldquo;LoadModule php5_module  D:/php/php5apache2.dll”是指以module方式加载php,第二行“PHPIniDir  "D:/php"”是指明php的配置文件php.ini的位置,是当然,其中?ldquo;D:/php”要改成你先前选择的php解压缩的目录?/p>

 

还是Apache的配置文件,Ln 757,加?ldquo;AddType  application/x-httpd-php .php”?ldquo;AddType application/x-httpd-php  .html”两行,你也可以加入更多,实质就是添加可以执行php的文件类型,比如你再加上一?ldquo;AddType  application/x-httpd-php .htm”,则.htm文件也可以执行php程序了,你甚至还可以添加上一?ldquo;AddType  application/x-httpd-php .txt”,让普通的文本文件格式也能运行php程序?/p>

 

前面所说的目录默认索引文件也可以改一下,因为现在加了php,有些文件就直接存为.php了,我们也可以把“index.php”设为默认索引文件,优先顺序就自己排了,我的是放在第一位。编辑完成,保存,关闭?/p>

 

现在,php的安装,与Apache的结合已经全部完成,用屏幕右下角的小图标重启Apache,你的Apache服务器就支持了php?/p>

三、mysql的安装,与php、Apache相结?/strong>

打开下载的mysql安装文件mysql-4.1.14-win32.zip,双击解压缩,运?ldquo;setup.exe”,出现如下界?/p>

 

mysql安装向导启动,按“Next”继续

 

选择安装类型,有“Typical(默认)”?ldquo;Complete(完全)”?ldquo;Custom(用户自定义?rdquo;三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程

 

?ldquo;Developer Components(开发者部分)”上左键单击,选择“This  feature, and all subfeatures, will be installed on local hard  drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘?rdquo;。在上面?ldquo;MySQL Server(mysql服务器)”?ldquo;Client  Programs(mysql客户端程序)”?ldquo;Documentation(文??rdquo;也如此操作,以保证安装所有文件。点?ldquo;Change...”,手  动指定安装目录?/p>

 

填上安装目录,我的是“D:\mysql”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续?/p>

 

返回刚才的界面,?ldquo;Next”继续?/p>

 

确认一下先前的设置,如果有误,?ldquo;Back”返回重做。按“Install”开始安装?/p>

 

正在安装中,请稍候,直到出现下面的界?/p>

 

这里是询问你是否要注册一个mysql.com的账号,或是使用已有的账号登陆mysql.com,一般不需要了,点?ldquo;Skip Sign-Up”,按“Next”略过此步骤?/p>

 

现在软件安装完成了,出现上面的界面,这里有一个很好的功能,mysql配置向导,不用向?nbsp; 前一样,自己手动乱七八糟的配置my.ini了,?“Configure the Mysql Server  now”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导?/p>

 

mysql配置向导启动界面,按“Next”继续?/p>

 

选择配置方式?ldquo;Detailed Configuration(手动精确配置)”?ldquo;Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程?/p>

 

选择服务器类型,“Developer  Machine(开发测试类,mysql占用很少资源?rdquo;?ldquo;Server  Machine(服务器类型,mysql占用较多资源?rdquo;?ldquo;Dedicated MySQL Server  Machine(专门的数据库服务器,mysql占用所有可用资源)”,大家根据自己的类型选择了,一般?ldquo;Server  Machine”,不会太少,也不会占满?/p>

 

选择mysql数据库的大致用途,“Multifunctional  Database(通用多功能型,好?rdquo;?ldquo;Transactional Database  Only(服务器类型,专注于事务处理,一般)”?ldquo;Non-Transactional Database  Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),随自己的用途而?nbsp; 择了,我这里选择“Transactional Database Only”,按“Next”继续?/p>

 

对InnoDB Tablespace进行配置,就是为InnoDB  数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了,这?nbsp; 不详述。我这里没有修改,使用用默认位置,直接按“Next”继续

 

选择您的网站的一般mysql访问量,同时连接的数目,“Decision  Support(DSS)/OLAP?0个左右)”?ldquo;Online Transaction  Processing(OLTP)?00个左右)”?ldquo;Manual Setting(手动设置,自己输一个数?rdquo;,我这里?ldquo;Online  Transaction Processing(OLTP)”,自己的服务器,应该够用了,?ldquo;Next”继续

 

是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,我这里启用,把前面的勾打上,Port Number?306,按“Next”继续

 

这个比较重要,就是对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多  字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在Character  Set那里选择或填?ldquo;gbk”,当然也可以?ldquo;gb2312”,区别就是gbk的字库容量大,包括了gb2312的所有汉字,并且加上了繁体字、和其它  乱七八糟的字——使用mysql的时候,在执行数据操作命令之前运行一?ldquo;SET NAMES  GBK;”(运行一次就行了,GBK可以替换为其它值,视这里的设置而定),就可以正常的使用汉字(或其它文字)了,否则不能正常显示汉字。按  “Next”继续?/p>

 

选择是否将mysql安装为windows服务,还可以指定Service  Name(服务标识名称),是否将mysql的bin目录加入到Windows  PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername  -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service  Name不变。按“Next”继续?/p>

 

这一步询问是否要修改默认root用户(超级管理)的密码(默认为空),“New root  password”如果要修改,就在此填入新密码(如果是重装,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将“Modify  Security  Settings”前面的勾去掉,安装配置完成后另行修改密码),“Confirm(再输一遍)”内再填一次,防止输错?ldquo;Enable root  access from remote  machines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它?rdquo;。最?ldquo;Create An  Anonymous  Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,?ldquo;Next”继续?/p>

 

确认设置无误,如果有误,?ldquo;Back”返回检查。按“Execute”使设置生效?/p>

 

设置完毕,按“Finish”结束mysql的安装与配置——这里有一个比较常见的错误,就  是不?ldquo;Start  service”,一般出现在以前有安装mysql的服务器上,解决的办法,先保证以前安装的mysql服务器彻底卸载掉了;不行的话,检查是否按上面一  步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的  data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错?/p>

与Apache及php相结合,前面已提过,这里再说一下,在php安装目录下,找到先前?nbsp; 命名并编辑过?nbsp; php.ini,如下图所示,Ln563,把“;extension=php_mysql.dll”前的“;”去掉,加载mysql模块。保存,关闭后,   重启apache就可以了。这里也可以选择其它要加载的模块,去掉前面的“;”,就表示要加载此模块了,加载的越多,占用的资源也就多一点,不过也多不到   哪去。所有的模块文件都放在php解压缩目录的“ext”之下,我这里的截图是把所有能加载的模块都加载上去了,前面?ldquo;;”没去掉的,是因为“ext”  目录下默认没有此模块,加载会提示找不到文件而出错。这里只是参考,一般不需要加载这么多,需要的加载上就可以了,编辑好后保存,关闭?/p>

 

同样,加载了模块后,就要指明模块的位置,否则重启Apache的时候会提示“找不到指定模  ?rdquo;的错误,这里介绍一种最简单的方法,直接将  php安装路径、里面的ext路径指定到windows系统路径?mdash;—?ldquo;我的电脑”上右键,“属?rdquo;,选择“高级”标签,点?ldquo;环境变量”,在“系统?nbsp;  ?rdquo;下找?ldquo;Path”变量,选择,双击或点击“编辑”,将“;D:\php;D:\php\ext”加到原有值的后面,当然,其中?ldquo;D:\php”?nbsp;  我的安装目录,你要将它改为自己的php安装目录,如下图所示,全部确定。系统路径添加好后要重启电脑才能生效,可以现在重启,也可以在所有软件安装或?nbsp; 置好后重启?/p>

 


Tags - , , , ]]>
//www.2w0f.cn/dedecms-document-keywords-anchor/ <![CDATA[DeDeCMS 5.6文关键词自动添加超链接的解决方案]]> - JƱƽ̨J©JԨJ׬淨J̳J 郝聪 <bloghuman@gmail.com> Mon, 30 Aug 2010 07:01:43 +0000 //www.2w0f.cn/dedecms-document-keywords-anchor/ 需要以下设置:

1、后?采集-文关键词维?添加关键词及链接

2、后?系统-核心设置 关键字替???使用本功能会影响HTML生成速度??/p>

3、后?系统-其他选项 文内容同一关键词替换次?0为全部替??设置一个数?(这里顺便提一下,比如一篇文章含有互相包含关键词,比如dede和dedecms,系统会把后面的dedecms会被dede替代,我的做法是,关键词替换次数设置?次,然后文关键词维护那里把dede和dedecms的频率设置成一样,就搞定了。)

修改文件?include/arc.archives.class.php

查找以下代码?br />

引用

foreach($kws as $k)
{
$k = trim($k);
if($k!="")
{
if($i > $maxkey)
{
break;
}
$myrow = $this->dsql->GetOne("select * from #@__keywords where keyword='$k' And rpurl<>'' ");
if(is_array($myrow))
{
$karr[] = $k;
$GLOBALS['replaced'][$k] = 0;
$kaarr[] = "<a href='{$myrow['rpurl']}'><u>$k</u></a>";
}
$i++;
}
}



将以上代码替换为以下代码?br />
引用

global $dsql;

$query="SELECT * FROM dede_keywords WHERE rpurl<>'' ORDER BY rank DESC";

$dsql->SetQuery($query);

$dsql->Execute();

while($row = $dsql->GetArray())

{

$key = trim($row['keyword']);

$key_url=trim($row['rpurl']);

$karr[] = $key;

$kaarr[] = "<a href='$key_url' target='_blank'><u>$key</u></a>";

}


Tags - ,





















国内主要的网络书签代码参考:

引用

收藏到QQ书签
<a   href="javascript:window.open('//shuqian.qq.com/post?from=3&title='+encodeURIComponent(document.title)+'&uri='+encodeURIComponent(document.location.href)+'&jumpback=2&noui=1','favit','width=930,height=470,left=50,top=50,toolbar=
no,menubar=no,location=no,scrollbars=yes,status=yes,resizable=yes');void(0)"   style="text-decoration:none;color:#000000;display:block;">收藏到QQ书签< /a>

Google书签
<a  href="javascript:location.+encodeURIComponent(document.title)"   style="text-decoration: none">Google书签</a>

Yahoo书签
<a   href="javascript:location.href='//myweb2.search.yahoo.com/myresults /bookmarklet?u='+encodeURIComponent(location.href)+'& t='+encodeURIComponent(document.title)">Yahoo书签</a>

Del.icio.us
<a    href="javascript:location.+encodeURIComponent(document.title)">Del.icio.us</a>

新浪ViVi
<a   href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(vivi=window.open('//vivi.sina.com.cn /collect/icollect.php?pid=28&title='+escape(d.title)+'& url='+escape(d.location.href)+'& desc='+escape(t),'vivi','scrollbars=no,width=480,height=480,left=75,top=20,status=no,resizable=yes')); vivi.focus();">新浪ViVi</a>

搜狐网摘
<a  href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(keyit=window.open('//z.sohu.com /storeit.do?t='+escape(d.title)+'&u='+escape(d.location.href)+'& c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus();">搜狐网摘</a>

365Key网摘
<a  href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(keyit=window.open('//www.365key.com /storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'& amp;c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus();">365Key网摘</a>

天极网摘
<a  href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(yesky=window.open('//hot.yesky.com /dp.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'& c='+escape(t)+'& st=2','yesky','scrollbars=no,width=400,height=480,left=75,top=20,status=no,resizable=yes')); yesky.focus();">天极网摘</a>

我摘
<a  href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(wozhai=window.open('//www.wozhai.com /wozhai/Cento.asp#t='+escape(d.title)+'& u='+escape(d.location.href)+'& c='+escape(t),'wozhai','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); wozhai.focus();">收藏到我?lt;/a>

POCO网摘
<a  href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(keyit=window.open('//my.poco.cn /fav/storeIt.php?t='+escape(d.title)+'& u='+escape(d.location.href)+'&c='+escape(t)+'&img=//www.h- strong.com/blog /logo.gif','keyit','scrollbars=no,width=475,height=575,status=no,resizable=yes')); keyit.focus();">POCO网摘</a>

博采网摘
<a  href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(keyit=window.open('//blogmark.bokee.com /jsp/key/quickaddkey.jsp?k='+encodeURI(d.title)+'& u='+encodeURI(d.location.href)+'& c='+encodeURI(t),'keyit','scrollbars=no,width=500,height=430,status=no,resizable=yes')); keyit.focus();">博采网摘</a>

和讯网摘
<a  href="javascript:t=document.title;u=location.href;e=document.selection? (document.selection.type!='None'?document.selection.createRange().text:''): (document.getSelection?document.getSelection():'');void(open('//bookmark.hexun.com /post.aspx?title='+escape(t)+'&url='+escape(u)+'& excerpt='+escape(e),'HexunBookmark','scrollbars=no,width=600,height=450,left=80,top=80,status=no,resizable=yes'));"& gt;和讯网摘</a>

天天收藏
<a  href="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(keyit=window.open('//www.365fav.com /StorePage.asp?title='+escape(d.title)+'& urlstr='+escape(d.location.href)+'& content='+escape(t),'fav','scrollbars=no,width=475,height=500,left=75,top=20,status=no,resizable=yes')); keyit.focus();">天天收藏</a>

igooi网摘
<a  href="javascript:u=location.href;t=document.title;void(open('//www.igooi.com/addnewitem.aspx?noui=yes&jump=close&url='+escape(u)+'&title='+escape(t)+'&sel='+escape(document.selection.createRange().text),'igooi',   'toolbar=no,width=400,height=480'));">igooi网摘</a>

百度搜藏
<a    href="javascript:window.open('//cang.baidu.com/do/add?it='+encodeURIComponent(document.title.substring(0,76))+'&iu='+encodeURIComponent(location.href)+'&fr=ien#nw=1','_blank','scrollbars=no,width=600,height=450,left=75,top=20,status=no,resizable=yes');   void 0" text-decoration:none;font-weight:normal"><SPAN  style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 12px;  PADDING-BOTTOM: 0px; MARGIN-LEFT: 10px; CURSOR: pointer; PADDING-TOP:  5px">添加到百度搜?lt;/SPAN></a>

黑米书签
<a  href="javascript:desc='';via=''; if(document.referrer)via=document.referrer; if(typeof(_ref)!='undefined')via=_ref; if(window.getSelection)desc=window.getSelection(); if(document.getSelection)desc=document.getSelection(); if(document.selection)desc=document.selection.createRange().text; void(open('//www.hemidemi.com/user_bookmark /new?title='+encodeURIComponent(document.title)+'& url='+encodeURIComponent(location.href)+'& description='+encodeURIComponent(desc)+'& via='+encodeURIComponent(via)));">黑米书签</a>

奇客diglog
<a  title="推荐到diglog" href="javascript://"  onclick="javascript:d=document;t=d.selection? (d.selection.type!='None'?d.selection.createRange().text:''): (d.getSelection?d.getSelection():'');void(keyit=window.open('//www.diglog.com /submit.aspx?title='+escape(d.title)+'& url='+escape(d.location.href)+'& description='+escape(t),'keyit','resizable,location,menubar,toolbar,scrollbars,status')); keyit.focus();">奇客diglog</a>

Diigo
<a href="#" onclick="var s=document.createElement('script');s.type='text/javascript';s.src='
//www.diigo.com/javascripts/webtoolbar/diigolet_b_h_b.js';document.body.appendChild(s);">Diigo</a>

饭否
<a   href="javascript:var  d=document,w=window,f='//fanfou.com /share',l=d.location,e=encodeURIComponent,p='?u='+e(l.href)+'?t='+e(d.title)+'?d='+e(w.getSelection?w.getSelection().toString():d.getSelection?d.getSelection():d.selection.createRange().text)+'?s=bl';  if(!w.open(f+'r'+p,'sharer','toolbar=0,status=0,width=600,height=400')) {l.href=f+'.new'+p;}void(0)">分享到饭?lt;/a>

Funp 推推?br /><a  href="//funp.com/push/submit/add.php?&via=tools"  title="貼到funP"><img src="//funp.com/tools/images/post_05.gif"  border="0"/></a>

博拉推荐
<a  href=//www5.bolaa.com/quickvouch/index.html  target=_blank><img  src=//www5.bolaa.com/Resource/images/check_74_15.gif width=74  height=15 border=0 /></a>


Tags - Ʊƽ̨ , ]]>
  • ղƷ嵥 ҵӭĸ 2018-12-13
  • ҵɫڸĸﴴͶɫ2500 2018-12-07
  • ԺίԼ̸ 2018-12-04
  • ҵݽʾҵͶʼֵ 30ֻɻ10Ԫʽ𲼾 2018-12-04
  • ȷϷּ ʵϷעʵ 2018-11-30
  • Ϊ̫ԭ˲ޣ 2018-11-23
  • Զܵһ֮ 2018-11-23
  • ӲӳӦȡλǷˣŶӵȴְͲӳ٣ijλ̷ˣӳ١䡰˰߸λ޵Դ 2018-11-15
  • ˫һУżתרҵ 2018-10-28
  • ൱90 Ҽ̬԰ 2018-10-24
  • 籭ҹ СϺϷ 2018-10-24
  • ϲӭʮŴýߣȫιΪйݻ 2018-10-22
  • Ů֮ȫ 2018-10-14
  • 壺CñϷ˹÷ 3 2018-10-10
  • йʮŴδ 2018-10-10