dede问答模块 那个php文件相对重要,dede问答模块常用修改

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文件中加入:#问答首页

#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) { ?>

”>

我来回答这个问题

回答即可得<?php  echo $cfg_ask_answerscore;?>分,回答被采纳则获得悬赏分以及奖励<?php  echo $cfg_ask_bestanswer;?>分。

if($GLOBALS['cfg_ask_guestanswer'] == ‘Y’)

{

?>

匿名回答<?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 

{

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'] 

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();

}

}

本文链接:https://www.weguiding.com/gnyh/373.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值