修改织梦默认栏目页文章页URL命名规则,简化目录结构

用织梦DedeCms建站,建议优化系统默认的URL结构,这样能简化网站目录深度,利于搜索引擎收录。 

现在织梦的默认文章命名规则是 

{typedir}/{Y}{M}/{D}/{aid}.html 

{typedir}代表的是上级目录 

如我的网站http://www.iwojie.com/ 

按照织梦默认的命名规则,一级栏目下生成的文章URL为 

http://www.iwojie.com/skill/2010/826/1.html 

二级目录下生成的文章URL为 

http://www.iwojie.com/skill/no1/2010/826/2.html 

大家可以看出,在一级目录最终生成的文件已经是在三级目录下了,在二级目录下生成的文章就到了四级目录, 

分类越细的话,最终生成的文章所在目录就越深,这样不利于搜索引擎访问该页面,所以建议大家更改织梦文章默认的命名规则,减少多余目录, 

直接在栏目目录下就生成HTML文件,把年月日这两个文件夹精简掉,这样更有利于seo优化 

我现在的文章页URL的命名规则是{typedir}/{aid}.html,删除了年月日两个文件夹,或则你也可以改为{typedir}/{Y}{M}{D}{aid}.html,将年月日和文章ID作为HTML的名字。 

更改方式有两种,一种是创建栏目,然后再对栏目进行修改 

一、打开网站栏目管理,找到需要更改的栏目,点击右边的更改,然后点击高级选项,对里面的文章命名规则列表命名规则进行更改。 

二、打开织梦系统文件,对默认值进行修改,这样再新建栏目的时候就不需要再进行修改了,一步到位。 

织梦Dedecms修改默认文章命名规则。//Dedecms5.5,Dedecms5.6测试有效

1、单独添加分类默认修改,修改文件:include/common.inc.php 

查找代码: 

1
2
3

//文档的默认命名规则
$art_shortname = $cfg_df_ext = ‘.html’;
$cfg_df_namerule = ‘<span style="color: #ff0000;">{typedir}/{Y}/{M}{D}/{aid}</span>’.$cfg_df_ext;

2、批量添加分类默认修改,修改文件:dede/templets/catalog_add_quick.htm 

查找代码: 

1

<input name="namerule" type="text" id="namerule" value="{typedir}/{Y}{M}{D}/{aid}.html" size="40" class="pubinputs" />

3、将{typedir}/{Y}{M}{D}/{aid}修改为你自定义的URL路径即可,如删除只留下{aid}。注意上面两处修改一定要保持一致。

  织梦Dedecms修改默认列表命名规则。//Dedecms5.5,Dedecms5.6测试有效

1、单独添加分类默认修改,修改文件:dede/templets/catalog_add.htm

查找代码:

1

<input id="namerule2" style="width: 250px;" name="namerule2" type="text" value="{typedir}/list_{tid}_{page}.html" />

2、批量添加分类默认修改,修改文件:dede/templets/catalog_add_quick.htm

查找代码:

1

<input id="namerule2" name="namerule2" size="40" type="text" value="{typedir}/list_{tid}_{page}.html" />

3、将{typedir}/list_{tid}_{page}.html修改为你自定义的URL路径即可,注意上面两处修改一定要保持一致。

修改织梦DedeCms文章页默认title的方法

DedeCms文章页的默认title结构是:“文章标题_网站名称”。

如果您不喜欢这类命名方式,喜欢“文章标题_栏目页_网站名称”、“文章标题_二级栏目_一级栏目_网站名称”这类的命名方式,可以将下列代码插入到模板文件article_article.htm,<title></title>标签之间,即可实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

{dede:field name=’title’/}_{dede:field name=’position’ runphp=’yes’}

$tc="_"; //分隔符

$tw=$GLOBALS[‘cfg_list_symbol’]; //调用位置分隔符

@me=html2text(@me); //去除html标签

$tf=split($tw,@me); //分解成数组

for($ta=(count($tf)-2);$ta&gt;=1;$ta–){ //循环赋值给$tk

$tk.=trim($tf[$ta]).$tc;

}

$tk=substr($tk,0,-1);

@me=$tk; //赋值给@me

{/dede:field}_{dede:global name=’cfg_webname’/}

然后再重新生成所有页面。

修改织梦DedeCms5.5/5.6修改“DEDECMS 提示信息

织梦DedeCms的一些跳转提示信息会出现“DEDECMS 提示信息!”这几个字样。

很多朋友都想对他进行修改,改为自己网站的提示信息。

具体修改方法是编辑打开include/common.func.php文件,查找“DEDECMS”,你会发现有两次DEDECMS提示信息,在那两处提示信息的位置修改为你想要的提示信息即可。

织梦DedeCms列表页文章缩略图设置,有就显示,没有不显示

不少用织梦建站朋友想实现这个功能,有时候未必偏偏文章都会配有图片,所以就想实现有缩略图则显示缩略图,无则不显示图片。

可以按照下面这个方法修改实现。

编辑打开/templets/default/list_article.htm (这是默认模板)

搜索下面这段代码

1

[field:array runphp=’yes’]@me = (empty(@me[‘litpic’]) ? "" : "<a class="preview" href="{@me["><img src="{@me[" alt="" /></a>"); [/field:array]

将其替换为

1

[field:array runphp=’yes’]@me = (strpos(@me[‘litpic’],’defaultpic’) ? "" : "<a href='{@me[‘arcurl’]}’ class=’preview’><img src='{@me[‘litpic’]}’/></a>"); [/field:array]

然后再重新生成一遍列表页。

织梦DedeCms网站更换域名后文章图片路径批量修改

因为织梦上传图片用的是绝对地址,如果域名更换后,之前发布的文章的图片URL是不会跟着改变的,所以我们需要把旧域名替换成新的域名,方法很简单,有一段SQL语句更新一下文章正文内容就行。

复制下面SQL语句进织梦DedeCms的后台,点 系统 -> SQL命令行工具,然后看到一个文本框,在文本框内输入SQL语句,按确定之行。如果操作成功,上面会提示“成功执行x个SQL语句!”

update dede_addonarticle set body=replace(body,’旧域名’,’新域名’)

然后再重新生成一遍HTML页面,文章内的旧域名就全部替换成新的了。

修改织梦DedeCms不跳转至index.html页面

用织梦DedeCms搭建网站,一般访问首页的时候,他会跳转至带有index.html的页面上,这样对网站权重传递方面会造成一些影响。我们可以通过修改代码实现不跳转至index.html页面。

编辑打开include/channelunit.func.php页面

查找

$reurl = $typedir.’/’.$defaultname;

替换成

$reurl = $typedir.’/’;

修改完成后就不会再跳转至index.html页面了。

DEDECMS5.6升级至5.7之后无法发布编辑文章的解决办法

此问题是从5.6升级到5.7再导入老数据库3表(附加表,主表,微表)后出的问题。

因为DEDECMS5.7比5.6文章多了投票,所以archives表 多了一个votid字段。

所以必须增加这个字段。否则发布或修改文章的时候会提示更新dede_archives 出错。

解决办法:

请在后台SQL命令行输入以下命令后运行:

ALTER TABLE `dede_archives` ADD `voteid` mediumint(8) NOT NULL;

执行以上命令之后,问题就能完美解决。

另外,升级还有类似dede后台目录对应的问题,默认dede后台目录,你得把升级文件中dede目录的文件上传到你自己设置的后台目录中。

5.6的默认模板同样可以在5.7中适用,只要编码相同,直接上传更新即可。

dede首页使用随机tag关键词

1、打开后台——模板——head.htm 文件
2、找到标签代码 

复制代码

  1. <div class="tags">
  2.           <h4>热门标签:</h4>
  3.           <ul>
  4.           {dede:tag row=’10’ getall=’1′ sort=’month’}
  5.             <li><a href='[field:link/]’>[field:tag /]</a></li>
  6.           {/dede:tag}
  7.           </ul>
  8.         </div>

3、把month换成rand 

复制代码

  1. <div class="tags">
  2.           <h4>热门标签:</h4>
  3.           <ul>
  4.           {dede:tag row=’10’ getall=’1′ sort=’rand’}
  5.             <li><a href='[field:link/]’>[field:tag /]</a></li>
  6.           {/dede:tag}
  7.           </ul>
  8.         </div>

再搭配上自动更新首页的插件,使用起来效果就灰常不错了!栏目页的tag标签要等栏目页更新才会更新的!

使用方法:

 

第一步:

 

把下面的代码复制下来改名auto_update_home.php中的

<?php

$lasttime=filemtime($_SERVER[‘DOCUMENT_ROOT’]."/index.html");

$interval=60;  //更新时间秒为单位1800秒=30分钟

$bdnum=1;//上面设置的时间自动审查生成HTML条数

if((time()-$lasttime)>$interval)

{

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

require_once DEDEINC."/arc.partview.class.php";

$GLOBALS[‘_arclistEnv’] = ‘index’;

$row = $dsql->GetOne("Select * From `dede_homepageset`");

$row[‘templet’] = MfTemplet($row[‘templet’]);

$pv = new PartView();

$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row[‘templet’]);

$pv->SaveToHtml(dirname(__FILE__).’/index.html’);

exit();

}

?>

 

$interval=1800;  //更新时间秒为单位1800秒=30分钟

 

这里的1800表示首页html每隔半小时生成一次,可随意修改,建议测试时改为60来测试效果,本人亲测Dedecms v5.6可行。

 

第二步:

 

上传auto_update_home.php至网站根目录

 

第三步:

 

修 改首页模板,在网站首页的<head></head>这部分加入<script src="/auto_update_home.php" language="javascript"></script>这段代码,然后更新首页即可。

dedecms改验证码防止注册机注册

我修改的版本是dede5.6

找到/member/templets/
reg-new.htm 文件

找到以下代码:

 <input type="text" class="intxt w200" style="width: 50px; text-transform: uppercase;" id="vdcode" name="vdcode"/><img id="vdimgck" align="absmiddle" onclick="this.src=this.src+’?’" style="cursor: pointer;" alt="看不清?点击更换" src="../include/vdimgck.php"/>

           看不清? <a href="javascript:void(0)" onclick="changeAuthCode();">点击更换</a>

替换为以下代码:

复制代码

  1. <input id="vdcode" class="text login_from3" type="text" style="width: 50px; text-transform: uppercase;" name="vdcode" onfocus="showAuthCode()"/><span id="vdimgck">点击显示验证码</span>
  2. <script>
  3. function showAuthCode(){
  4. document.getElementById("vdimgck").innerHTML='<img id="vdimgck" src="../include/vdimgck.php" alt="看不清?点击更换" style="cursor: pointer;" onclick="showAuthCode()"/>’;
  5. }
  6. </script>

效果图:

dedecms改验证码防止注册机注册 - 小男生 - 小男生的博客

dedecms改验证码防止注册机注册 - 小男生 - 小男生的博客

   

不是怎么美观,不过大半夜的不想弄了!就注册位置防止注册机注册,其它的登录位置不修改。

经过几次测试之后,发现有个别新式注册机居然能过这个!后来我干脆去掉了验证码选项,直接设置了很多回答问题,每次随即调用一个!