您现在的位置是:首页 > cms教程 > DedeCMS教程DedeCMS教程
dedecms织梦问答模板静态化的方法
代云2023-11-20DedeCMS教程已有人查阅
导读dedecms问答模块如何静态化添加dedecms的问答模块有助于被收录的量及提高网站资讯量,有利于SEO的优化及排名,特别是对于图片站来说
dedecms问答模块如何静态化添加dedecms的问答模块有助于被收录的量及提高网站资讯量,有利于SEO的优化及排名,特别是对于图片站来说,添加了问答模块可以更好的提高收录量,也有利于被惩罚站的恢权重,如果你的站被惩罚了,那么添加个问答模块还有利于加速恢复权重。
我们先来看下DedeCMS 5.7问答模块的官方升级说明:
重构问答模块,采用模块MVC架构进行重构;
问答模块支持伪静态设置;
重新设计问答模块前台界面,新界面同系统整体界面一致;
客服中心采用新版问答模块改版;
问答模块增加对二级域名的支持。
通过上述说明,结合DedeCMS V5.7的问答源码,基本可以确定两个信息:
DedeCMS 5.7问答模块仍然支持伪静态;
由于织梦问答模块升级,使用了新的URL形式,历史版本的问答系统伪静态规则已经不适用于新版了,这也DedeCMS 5.7问答伪静态实现要解决的重点。
DedeCMS 5.7问答伪静态高级解决方案
1)你的主机是否支持伪静态?这点很重要,不然下面说再多也是白搭。简单说明下,Apache服务器伪静态实现需要借助.htaccess文件;IIS服务器伪静态实现则需要加载Rewrite
组件,然后配置httpd.ini文件;
2)DedeCMS V5.7管理后台-系统-系统基本参数-模块设置,“是否使用Rewrite”选择“是”,“问答模块的二级域名”填写“ask”;
这里为什么要填写问答模块的二级域名?因为小拼的伪静态修改方法是参考DedeCMS V5.5和5.6问答的URL形式,目标URL以“.html”结尾,相信对使用过历史版本问答系统的朋友
都不会陌生。
如:http://localhost/ask/question-4.html
这样的URL在DedeCMS V5.7中会有一个问题,许多以“?ct=”开头的链接都会访问不了,如“我的提问”、“我的回答”、“提高悬赏”、“编辑/删除问题”等,会产生404错误页
面。
如:http://localhost/ask/question-4.html?ct=myask
其实这种现象的产生,主要是模板里链接的路径问题,采用的都是相对路径。而启用问答模块的二级域名,再结合模板修改就可以很好的解决。当然,你也可以修改模板,实现问
答全站伪静态,只需多加几条伪静态规则即可。
3)DedeCMS 5.7问答伪静态规则
IIS服务器伪静态规则,在httpd.ini文件中加入:
1)注意备份你站点的ask文件夹,防止出错,方便还原;
2)以上的问答伪静态仅供DedeCMS5.7 GBK版本使用,UTF版本请自行转换下代码;
3)考虑到SEO,很多织梦老用户都是V5.1~V5.6版本升级至V5.7的,小拼提供的修改办法保证了历史问答版本URL的一致性,否则URL改变是很影响搜索引擎收录和排名的;
4)你可以参考下小拼的问答伪静态实现思路,总结出一套符合个人站点风格的伪静态方法。
DedeCMS 5.7问答伪静态初级解决方案
如果你怕麻烦,还心存疑虑,那就直接使用官方默认的伪静态方法了,仅实现问答栏目页和详细页的伪静态,可以使用下面的伪静态规则:
IIS服务器,在httpd.ini文件中加入:
问答模块的游客提问 管理员回答
一:只允许管理员回答
找到dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码并增加以下红色部分代码:
找到dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码并删除:
三:解决 “您尚未登录,请先登录”
找到找到并删除dedecms5.7的/ask/control目录下的myask.php文件
四:游客问答,提示“请勿重复回复同一问题”:
同样找到并删除dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码:
五:问题已过期、提问者自己不能回答自己的问题
同样找到找到并删除dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码
找到找到并删除dedecms5.7的/ask/control目录下的question.php文件
}
我们先来看下DedeCMS 5.7问答模块的官方升级说明:
重构问答模块,采用模块MVC架构进行重构;
问答模块支持伪静态设置;
重新设计问答模块前台界面,新界面同系统整体界面一致;
客服中心采用新版问答模块改版;
问答模块增加对二级域名的支持。
通过上述说明,结合DedeCMS V5.7的问答源码,基本可以确定两个信息:
DedeCMS 5.7问答模块仍然支持伪静态;
由于织梦问答模块升级,使用了新的URL形式,历史版本的问答系统伪静态规则已经不适用于新版了,这也DedeCMS 5.7问答伪静态实现要解决的重点。
DedeCMS 5.7问答伪静态高级解决方案
1)你的主机是否支持伪静态?这点很重要,不然下面说再多也是白搭。简单说明下,Apache服务器伪静态实现需要借助.htaccess文件;IIS服务器伪静态实现则需要加载Rewrite
组件,然后配置httpd.ini文件;
2)DedeCMS V5.7管理后台-系统-系统基本参数-模块设置,“是否使用Rewrite”选择“是”,“问答模块的二级域名”填写“ask”;
这里为什么要填写问答模块的二级域名?因为小拼的伪静态修改方法是参考DedeCMS V5.5和5.6问答的URL形式,目标URL以“.html”结尾,相信对使用过历史版本问答系统的朋友
都不会陌生。
如:http://localhost/ask/question-4.html
这样的URL在DedeCMS V5.7中会有一个问题,许多以“?ct=”开头的链接都会访问不了,如“我的提问”、“我的回答”、“提高悬赏”、“编辑/删除问题”等,会产生404错误页
面。
如:http://localhost/ask/question-4.html?ct=myask
其实这种现象的产生,主要是模板里链接的路径问题,采用的都是相对路径。而启用问答模块的二级域名,再结合模板修改就可以很好的解决。当然,你也可以修改模板,实现问
答全站伪静态,只需多加几条伪静态规则即可。
3)DedeCMS 5.7问答伪静态规则
IIS服务器伪静态规则,在httpd.ini文件中加入:
#问答首页
#RewriteRule ^(.*)/index\.html $1/index\.php
#问答详细页
RewriteRule ^(.*)/question-([0-9]+)\.html $1/\?ct=question&askaid=$2
#问答一级栏目
RewriteRule ^(.*)/browser-1-([0-9]+)\.html $1/\?ct=browser&tid=$2
#问答一级栏目分页
RewriteRule ^(.*)/browser-1-([0-9]+)-page-([0-9]+)\.html $1/\?ct=browser&tid=$2&page=$3
#问答子栏目
RewriteRule ^(.*)/browser-2-([0-9]+)\.html $1/\?ct=browser&tid2=$2
#问答子栏目分页
RewriteRule ^(.*)/browser-2-([0-9]+)-page-([0-9]+)\.html $1/\?ct=browser&tid2=$2&page=$3
# 精彩推荐、待解决问题、高悬赏问题、新解决问题、零回答问题、快到期问题(包括一级栏目、子栏目及其分页)
RewriteRule ^(.*)/browser-([0-9]+).html $1/\?ct=browser&lm=$2
RewriteRule ^(.*)/browser-([0-9]+)-page-([0-9]+)\.html $1/\?ct=browser&lm=$2&page=$3
RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+)\.html $1/\?ct=browser&tid=$2&lm=$3
RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+)-page-([0-9]+)\.html $1/\?ct=browser&tid=$2&lm=$3&page=$4
RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+)\.html $1/\?ct=browser&tid2=$2&lm=$3
RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+)-page-([0-9]+)\.html $1/\?ct=browser&tid2=$2&lm=$3&page=$4
#全部分类
RewriteRule ^(.*)/type.html $1/\?ct=type
#问答搜索
RewriteRule ^(.*)/search\.html $1/\?ct=search
#总积分排行 周积分上升排行 查看个人信息
RewriteRule ^(.*)/myask-view-([0-9]+)\.html $1/\?ct=myask&ac=view&mid=$2
Apache服务器伪静态规则,在.htaccess文件中加入:
RewriteRule ^index.html$ index.php
RewriteRule ^question-([0-9]+).html$ ?ct=question&askaid=$1
RewriteRule ^browser-1-([0-9]+).html$ ?ct=browser&tid=$1
RewriteRule ^browser-1-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid=$2&page=$3
RewriteRule ^browser-2-([0-9]+).html$ ?ct=browser&tid2=$1
RewriteRule ^browser-2-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid2=$2&page=$3
RewriteRule ^browser-([0-9]+).html$ ?ct=browser&lm=$1
RewriteRule ^browser-([0-9]+)-page-([0-9]+).html$ ?ct=browser&lm=$1&page=$2
RewriteRule ^browser-1-([0-9]+)-([0-9]+).html$ ?ct=browser&tid=$1&lm=$2
RewriteRule ^browser-2-([0-9]+)-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid2=$1&lm=$2&page=$3
RewriteRule ^browser-2-([0-9]+)-([0-9]+).html$ ?ct=browser&tid2=$2&lm=$3
RewriteRule ^browser-2-([0-9]+)-([0-9]+)-page-([0-9]+).html$ ?ct=browser&tid2=$1&lm=$2&page=$3
RewriteRule ^type$ ?ct=type
RewriteRule ^search.html$ ?ct=search
RewriteRule ^myask-view-([0-9]+).html$ ?ct=myask&ac=view&mid=$1
DedeCMS 5.7问答伪静态修改注意事项1)注意备份你站点的ask文件夹,防止出错,方便还原;
2)以上的问答伪静态仅供DedeCMS5.7 GBK版本使用,UTF版本请自行转换下代码;
3)考虑到SEO,很多织梦老用户都是V5.1~V5.6版本升级至V5.7的,小拼提供的修改办法保证了历史问答版本URL的一致性,否则URL改变是很影响搜索引擎收录和排名的;
4)你可以参考下小拼的问答伪静态实现思路,总结出一套符合个人站点风格的伪静态方法。
DedeCMS 5.7问答伪静态初级解决方案
如果你怕麻烦,还心存疑虑,那就直接使用官方默认的伪静态方法了,仅实现问答栏目页和详细页的伪静态,可以使用下面的伪静态规则:
IIS服务器,在httpd.ini文件中加入:
#问答首页
#RewriteRule ^(.*)/index\.html $1/index\.php
#问答详细页
RewriteRule ^(.*)/([0-9]+)\.html $1/\?ct=question&askaid=$2
#问答一级栏目
#RewriteRule ^(.*)/([0-9]+) $1/\?ct=browser&tid=$2
#问答子栏目
#RewriteRule ^(.*)/t([0-9]+) $1/\?ct=browser&tid2=$2
Apache服务器,在.htaccess文件中加入:
RewriteRule ^index.html$ index.php
RewriteRule ^([0-9]+).html$ ?ct=question&askaid=$1
RewriteRule ^([0-9]+)$ ?ct=browser&tid=$1
RewriteRule ^t([0-9]+)$ ?ct=browser&tid2=$1
好了,关于DedeCMS 5.7问答模块伪静态的实现方法就介绍到这里,有什么不明白的地方请在下面留言问答模块的游客提问 管理员回答
一:只允许管理员回答
找到dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码并增加以下红色部分代码:
<?php if($cfg_ml->isAdmin == 1) { ?>
<div>
<form method=”post” name=”answer” action=”?ct=question&ac=answer&askaid=<?php echo $question['id']; ?>”>
<h3><span>我来回答这个问题</span></h3>
<div><?php GetFck(“content”,””,400);?></div>
<div><span>回答即可得<?php echo $cfg_ask_answerscore;?>分,回答被采纳则获得悬赏分以及奖励<?php echo $cfg_ask_bestanswer;?>分。</span><span><label>
<?php
if($GLOBALS['cfg_ask_guestanswer'] == ‘Y’)
{
?>
<input name=”anonymous” type=”checkbox” value=”1″/>匿名回答</label><?php
}
?></span><button type=”submit”>提交回答</button></div>
</form>
</div>
<?php } ?>
二:允许游客提问找到dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码并删除:
if(empty($this->cfg_ml->M_ID))
{
ShowMsg(‘您尚未登录,请先登录’,$GLOBALS['cfg_ask_member']);
exit;
}
if($this->cfg_ml->M_Spacesta < 0)
{
ShowMsg(‘您还没有通过审核,暂时不能提问,请耐心等….’,’-1′);
exit;
}
删除以上一段代码后可进入提问页面,但是依然发布不了,提示:“您尚未登录,请先登录”三:解决 “您尚未登录,请先登录”
找到找到并删除dedecms5.7的/ask/control目录下的myask.php文件
if(empty($this->cfg_ml->M_ID))
{
ShowMsg(‘您尚未登录,请先登录’,$GLOBALS['cfg_ask_member']);
exit;
}
找到找到并删除dedecms5.7的/ask/control目录下的search.php文件
if(empty($cfg_ml->M_ID))
{
ShowMsg(‘您尚未登录,请先登录’,$GLOBALS['cfg_ask_member']);
exit;
}
if($cfg_ml->M_Spacesta = 0)
{
ShowMsg(‘您还没有通过审核,暂时不能提问,请耐心等….’,’-1′);
exit;
}
删除以上一部分之后 可进入发布了,可是发不后又提示:“请勿重复回复同一问题”四:游客问答,提示“请勿重复回复同一问题”:
同样找到并删除dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码:
if($rs)
{
ShowMsg(‘请勿重复回复同一问题!’,’-1′);
exit;
}
和
if($rs){
ShowMsg(‘请不要重复发布同一问题,请耐心等待解答..’, “index.php”);
exit;
}
到此,想要实现的功能都已经基本上实现了。之后在附送其他几个问题的解决办法,如果有用到可以参考。五:问题已过期、提问者自己不能回答自己的问题
同样找到找到并删除dedecms5.7的/ask/control目录下的question.php文件,找到其中的这样一段代码
if($question)
{
if($question['uid'] == $this->cfg_ml->M_ID)
{
ShowMsg(‘提问者自己不能回答自己的问题’, ‘-1′);
exit;
}else if($question['expiredtime'] < $GLOBALS['cfg_ask_timesasdp']){
ShowMsg(‘问题已经过期’,’-1′);
exit;
}
$data['tid'] = $question['tid'];
$data['tid2'] = $question['tid2'];
$data['userip'] = getip();
}else{
ShowMsg(‘回答的问题不存在’,’-1′);
exit;
}
六:“验证码错误!”“验证问题答案错误”找到找到并删除dedecms5.7的/ask/control目录下的question.php文件
if(preg_match(“#7#”,$GLOBALS['safe_gdopen'])){
$svali = GetCkVdValue();
if(strtolower($data['vdcode']) != $svali || $svali==”)
{
ResetVdValue();
ShowMsg(‘验证码错误!’, ‘-1′);
exit();
}
}
//检查验证问题
$faqkey = isset($data['faqkey']) && is_numeric($data['faqkey']) ? $data['faqkey'] : 0;
if($GLOBALS['gdfaq_ask'] == ‘Y’)
{
global $safefaqs;
if($safefaqs[$faqkey]['answer'] != $data['safeanswer'] || $data['safeanswer'] ==”)
{
ShowMsg(‘验证问题答案错误’, ‘-1′);
exit();
}
}
本文标签:
很赞哦! ()
相关教程
图文教程
dede织梦“信息发布员”发布文章后出现待审核稿件
在给dedecms网站添加信息发布员后,登录该账号发布文章你会发现该文章显示的是待审核稿件,且并没有生成静态文件,而多数朋友想要的效果则是信息发布员发布文
dedecms织梦批量修改文章点击量的方法
我们有时候需要对织梦文档的点击量进行批量维护,比如采集来的文章,点击量都为0,需要批量修改,可以用到如下方法;
火车头采集器发布dedecms自定义字段解决方法示例
有很多站长网站数据需要用到火车头采集器,那么如果DEDECMS中包含自定义字段,我们应该如何来采集呢?是不是傻眼了,不知道如何是好了
dedecms网页模板制作教程
网页模板就是templets中的htm文件,所以编写模板就是要编写html。这篇文章不是关于标签的具体使用,而是对网页模板的一些理解。包括基本的标签语法,
相关源码
-
(自适应响应式)HTML5电脑手机电子数码产品配件pbootcms模板下载本模板为电脑配件、手机配件及数码周边产品企业设计,基于PbootCMS内核开发。采用现代化响应式布局,适配各类移动设备,能够专业展示各类电子产品配件参数、应用场景和技术特点。模板内置多种产品展示模块,满足不同类型配件企业的展示需求。查看源码 -
(自适应)中英双语配线器材扎带线卡网站pbootcms模板免费下载为线缆管理、电气配线领域打造的响应式网站模板,采用PbootCMS内核开发,可快速搭建企业级产品展示平台,数据实时同步管理。查看源码 -
(自适应)英文外贸电子设备网站模板三级子目录基于PbootCMS内核开发的响应式英文网站模板,为外贸企业打造,支持多行业快速适配。通过简洁高效的代码架构,帮助企业低成本构建专业海外形象,实现更好客户触达与订单转化。查看源码 -
帝国cms自适应古诗词古籍名句网站整站带数据基于帝国CMS打造的专业古诗词文化网站模板,专注于古典文学内容的展示与传播。模板设计蕴含传统文化韵味,支持诗词鉴赏、名句赏析、古籍整理等特色功能,为诗词爱好者提供优质的在线阅读体验。查看源码 -
(自适应)工商代理公司注册财务会计pbootcms模板免费下载为工商代理、财务会计服务企业设计的网站模板,基于PbootCMS开发,充分考虑了企业服务行业的展示需求与客户转化路径。设计风格专业严谨,布局清晰合理,呈现企业服务内容与专业优势。查看源码 -
(自适应)WordPress二次元博客主题SakurairoSakurairo主题为二次元内容创作者设计,提供丰富的动漫风格元素和个性化的展示效果。该主题在原有Sakura主题基础上进行了功能增强,支持多种自定义设置,满足动漫爱好者建立个人博客的需求。查看源码
| 分享笔记 (共有 篇笔记) |
