标签归档:DEDE

DEDE采集远程jpeg格式图片无法本地化解决方法

使用织梦采集别人的文章,图片是jpeg格式的,点击保存后,发现图片并没有本地化,那么如何才能让DEDE采集自动保存jpeg的图片呢?

方法如下:

我的是5.7,不过原理都是一样的。

进入织梦的后台管理目录,默认是dede文件夹,找到/inc/inc_archives_functions.php文件。

在文件里查找gif|jpg|,我找到了4个, 在他们后面加你想采集的格式。这里都加上 |jpeg。保存后生成就可以了。

至此织梦采集jpeg图片无法本地化的问题就解决了。

织梦dedecms自由列表生成google网站地图sitemap.xml的方法

好多使用织梦dedecms的站长朋友都在找谷歌网站地图的生成工具,比如:google sitemap插件。其中不少还要求网站地图是分页的。其实织梦dedecms作为一款强大的内容管理系统,自身就带有生成网站地图sitemap的功能,其中也包含网站地图分页功能。下面小编来教给你们通过织梦程序的自由列表生成谷歌网站地图的方法。

1、织梦后台首页–核心–自由列表管理–增加列表:( 如下图)

2、设置相关参数:(参考上图)

自由列表标题: 
Google SiteMap 生成器 
 
目录默认页名称: 不使用目录默认主页(勾选上) 
 
命名规则: 
Sitemap_{page}.xml (如果只想把网站地图生成一页,不分页的话也可以写成Sitemap.xml。)
 
列表模板: 
google_sitemap.htm (此处根据自己情况填写列表模板路径。列表模板织梦程序本身就带的有,位置在template/default/googlemap.htm,但由于"<"出错的原因不好用,下面小编把自己编写的列表模板共享给大家。)
小编写的列表模板代码:

<?xml version="1.0" encoding="{dede:global.cfg_soft_lang/}"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.kgfanr.com</loc>
<lastmod>2013-11-08</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
</url>
{dede:freelist/}
</urlset>
把红色代码改为自己的网址。然后保存以上代码,命名为google_sitemap.htm,放到你的模板文件夹,列表模板处填写好路径。
 
列表描述: 
Google SiteMap文件生成 
 
每页记录数:500(可根据自身情况而定)
 
循环内的单行记录样式(InnerText):[底层变量field参考] 
<url> 
  <loc>[field:arcurl function="Gmapurl(@me)"/]</loc> 
  <lastmod>[field:senddate function="strftime('%Y-%m-%d',@me)"/]</lastmod> 
  <changefreq>weekly</changefreq> 
  <priority>0.5</priority> 
</url>
 
最后点击“保存一个列表”返回 。
 

3、生成sitemap:

返回到“更新自由列表”,看到了吧: 

直接点“更新”!

4、点击开始生成html

5、大功告成。

还有问题可以关注科技范儿网站微博并私信。谢谢!

 

附:谷歌网站地图(Google SiteMap)格式

Google SiteMap Protocol是Google自己推出的一种站点地图协议,此协议文件基于早期的robots.txt文件协议,并有所升级。在Google官方指南中指出加入了Google SiteMap文件的网站将更有利于Google网页爬行机器人的爬行索引,这样将提高索引网站内容的效率和准确度。文件协议应用了简单的XML格式,一共用到6个标签,其中关键标签包括链接地址、更新时间、更新频率和索引优先权。

<urlset xmlns=“网页列表地址”>
<url>
<loc>网址</loc>
<lastmod>2005-06-03T04:20-08:00</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>网址</loc>
<lastmod>2005-06-02T20:20:36Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
</urlset>

XML标签详解

changefreq:页面内容更新频率。
lastmod:页面最后修改时间
loc:页面永久链接地址
priority:相对于其他页面的优先权
url:相对于前4个标签的父标签
urlset:相对于前5个标签的父标签
我将一句一句分解讲解这个xml文件的每一个标签:
<urlset xmlns="
这一行定义了此xml文件的命名空间,相当于网页文件中的<html>标签一样的作用。
<url>
这是具体某一个链接的定义入口,你所希望展示在SiteMap文件中的每一个链接都要用<url>和</url>包含在里面,这是必须的。
<loc></loc>
用<loc>描述出具体的链接地址,这里需要注意的是链接地址中的一些特殊字符必须转换为XML(HTML)定义的转义字符,如下表: 字符 转义后的字符
HTML字符 字符编码
& 符号 & &amp;
单引号 ' &apos;
双引号 " "
大于 > &gt;
小于 < &lt;
<lastmod>2005-06-03T04:20:32-08:00</lastmod>
<lastmod>是用来指定该链接的最后更新时间,这个很重要。Google的机器人会在索引此链接前先和上次索引记录的最后更新时间进行比较,如果时间一样就会跳过不再索引。所以如果你的链接内容基于上次Google索引时的内容有所改变,应该更新该时间,让Google下次索引时会重新对该链接内容进行分析和提取关键字。这里必须用ISO 8601中指定的时间格式进行描述,格式化的时间格式如下:
年:YYYY(2005)
年和月:YYYY-MM(2005-06)
年月日:YYYY-MM-DD(2005-06-04)
年月日小时分钟:YYYY-MM-DDThh:mmTZD(2005-06-04T10:37+08:00)
年月日小时分钟秒:YYYY-MM-DDThh:mmTZD(2005-06-04T10:37:30+08:00)
这里需注意的是TZD,TZD指定就是本地时间区域标记,像中国就是+08:00了
<changefreq>always</changefreq>
用这个标签告诉Google此链接可能会出现的更新频率,比如首页肯定就要用always(经常),而对于很久前的链接或者不再更新内容的链接就可以用yearly(每年)。这里可以用来描述的单词共这几个:"always", "hourly", "daily", "weekly", "monthly", "yearly",具体含义我就不用解释了吧,光看单词的意思就明白了。
<priority>1.0</priority>
<priority>是用来指定此链接相对于其他链接的优先权比值,此值定于0.0 – 1.0之间
还有</url>和</urlset>,这两个就是来关闭xml标签的,这和HTML中的</body>和</html>是一个道理
另外需要注意的是,这个xml文件必须是utf-8的编码格式,不管你是手动生成还是通过代码生成,建议最好检查一下xml文件是否是utf-8编码,最简单的方法就是用记事本打开xml然后另存为时选择编码(或转换器)为UTF-8。
登陆Google提交你的SiteMap文件,链接,如果还没有注册或者登陆Google,就先用自己的帐号登陆Google,登陆后转到Your Sitemaps状态页面,可以点击那个Add a Sitemap + 跳转到提交页面进行Sitemap文件的提交。建议文件放在你的站点根目录下。给Google提交你的Sitemap URL后可以看见在列表里已存在,不过这时候还没有生效,必须过几个小时后Status栏变成OK表示正式生效,如果不是OK,可以查看Google给出的状态标示解释看看是什么原因。

解决织梦提示“输入的内容存在危险字符,安全起见,已被本站拦截”的方法

现在用织梦程序建站的站长越来越多,而dedecms官方补丁更新又是相当的慢,于是网站的安全性就是一个大问题了,不少的新站长因为缺少安全意识被黑客入侵网站,并且安装木马和后门程序。这对站长和用户都是相当不好的。黑客可以利用网站进行流量劫持,挂木马,做钓鱼等。严重所害了站长和用户的利益。

于是360推出了织梦安全包,站长们可以去下载安装。里面自带的有网站安全检测工具,来修复dedecms的网站安全漏洞,迅速查杀网站的木马及后门。地址:http://webscan.360.cn/dedecms

安装以后的界面如下图:

使用起来比较方面,可以阻挡大部分的攻击。但有些用户反映使用织梦发布的内容含有script标签时,织梦后台提示“输入内容存在危险字符,安全起见,已被本站拦截”。如下图:

解决方法:查找相关的文件,在网站根目录下的360safe文件夹中打开webscan_cache.php,源代码内容如下:

<?php
//用户唯一key
define('WEBSCAN_U_KEY', 'a8842ae386cfdce9893aaa441e66431d');
//数据回调统计地址
define('WEBSCAN_API_LOG', 'http://safe.webscan.360.cn/papi/log/?key='.WEBSCAN_U_KEY);
//版本更新地址
define('WEBSCAN_UPDATE_FILE','http://safe.webscan.360.cn/papi/update/?key='.WEBSCAN_U_KEY);
//拦截开关(1为开启,0关闭)
$webscan_switch=1;
//提交方式拦截(1开启拦截,0关闭拦截,post,get,cookie,referre选择需要拦截的方式)
$webscan_post=1;
$webscan_get=1;
$webscan_cookie=1;
$webscan_referre=1;
//后台白名单,后台操作将不会拦截,添加"|"隔开白名单目录下面默认是网址带 admin  /dede/ 放行
$webscan_white_directory='admin|\/zpyt48qpm8\/';
//url白名单,可以自定义添加url白名单,默认是对phpcms的后台url放行
//写法:比如phpcms 后台操作url index.php?m=admin php168的文章提交链接post.php?job=postnew&step=post ,dedecms 空间设置edit_space_info.php
$webscan_white_url = array('index.php' => 'm=admin','post.php' => 'job=postnew&step=post','edit_space_info.php'=>'');
?>

我们要改的地方就是:$webscan_white_directory='admin|\/dede\/        把 dede 修改为自己网站的后台地址目录

保存文件,上传并覆盖原文件,问题解决!

织梦TAG标签列表分页链接出错解决办法

先来看看DEDECMS默认的TAG列表分页:

第1页时:
<li><a href="/tags.php?/tag标签/1/">首页</a></li>
<li><a href="/tags.php?/tag标签/-1/">上一页</a></li>
<li><a href="/tags.php?/tag标签/1/">1</a></li>
<li><a href="/tags.php?/tag标签/2/">2</a></li>
<li><a href="/tags.php?/tag标签/3/">3</a></li>
<li><a href="/tags.php?/tag标签/4/">4</a></li>
<li><a href="/tags.php?/tag标签/5/">5</a></li>
<li><a href="/tags.php?/tag标签/6/">6</a></li>
<li><a href="/tags.php?/tag标签/1/">下一页</a></li>
<li><a href="/tags.php?/tag标签/6/">末页</a></li>

第3页时:

<li><a href="/tags.php?/tag标签/1/">首页</a></li>
<li><a href="/tags.php?/tag标签/2/">上一页</a></li>
<li><a href="/tags.php?/tag标签/1/">1</a></li>
<li><a href="/tags.php?/tag标签/2/">2</a></li>
<li class=”thisclass”><a>3</a></li>
<li><a href="/tags.php?/tag标签/4/">4</a></li>
<li><a href="/tags.php?/tag标签/5/">5</a></li>
<li><a href="/tags.php?/tag标签/6/">6</a></li>
<li><a href="/tags.php?/tag标签/4/">下一页</a></li>
<li><a href="/tags.php?/tag标签/6/">末页</a></li>

分页连接方式和栏目列表页一样,链接回到TAG列表默认首页时,地址发生了改变,多出了“1/”部分,
这样就分散了网站的权重。当在TAG列表是第1页的时候,“上一页”的链接居然是“-1/”页面,
这样的链接对于SEO搜索引擎优化来说不友好,下面才是我们需要的效果:

第1页时:

<li><a href="/tags.php?/tag标签/">首页</a></li>
<li class=”thisclass”><a>1</a></li>
<li><a href="/tags.php?/tag标签/2/">2</a></li>
<li><a href="/tags.php?/tag标签/3/">3</a></li>
<li><a href="/tags.php?/tag标签/4/">4</a></li>
<li><a href="/tags.php?/tag标签/5/">5</a></li>
<li><a href="/tags.php?/tag标签/6/">6</a></li>
<li><a href="/tags.php?/tag标签/2/">下一页</a></li>
<li><a href="/tags.php?/tag标签/6/">末页</a></li>

第3页时:

<li><a href="/tags.php?/tag标签/">首页</a></li>
<li><a href="/tags.php?/tag标签/2/">上一页</a></li>
<li><a href="/tags.php?/tag标签/">1</a></li>
<li><a href="/tags.php?/tag标签/2/">2</a></li>
<li class=”thisclass”><a>3</a></li>
<li><a href="/tags.php?/tag标签/4/">4</a></li>
<li><a href="/tags.php?/tag标签/5/">5</a></li>
<li><a href="/tags.php?/tag标签/6/">6</a></li>
<li><a href="/tags.php?/tag标签/4/">下一页</a></li>
<li><a href="/tags.php?/tag标签/6/">末页</a></li>

要得到这样的效果,只要按下面介绍的方法进行一些修改就可以了。

打开\include\arc.taglist.class.php修改:

1.找到 
 

if($this->PageNo != 1) 

改成 
if($this->PageNo == 1 || empty($this->PageNo)) 

2.找到 

$prepage.=”<li><a href=’”.$purl.”/$prepagenum/’>上一页</a></li>\r\n”;
$indexpage=”<li><a href=’”.$purl.”/1/’>首页</a></li>\r\n”;

改成
$indexpage="<li><a>首页</a></li><li class='thisclass'>1</li>\r\n";;

3.找到 

$indexpage=”<li><a>首页</a></li>\r\n”; 

改成

if ($prepagenum==1){
$prepage.="<li><a href='".$purl."/'>上一页</a></li><li><a href='".$purl."/'>1</a></li>\r\n";
}else{
$prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li><li><a href='".$purl."/'>1</a></li>\r\n";
}
$indexpage="<li><a href='".$purl."/'>首页</a></li>\r\n";

4.找到

$nextpage.=”<li><a href=’”.$purl.”/$nextpagenum/’>下一页</a></li>\r\n”;
改成

if ($nextpagenum==1){
$nextpage.="<li><a href='".$purl."/".($nextpagenum+1)."/'>下一页</a></li>\r\n";
}else{
$nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r\n";
}

5.找到 

$j=1;

改成 
$j=2;

这样改了之后就已经是我们想要得到的效果了。(因为发布编辑器的问题,小编打的单引号自动变成了双引号,大家记得自己修改回来)