完美解决Dede V5.7问答伪静态方法

这两天逛了下织梦论坛,发现很多站长朋友对DedeCMS 5.7问答模块的伪静态问题比较关心,普遍反映之前DedeCMS 5.5、5.6的问答伪静态规则不能用了。事实上,DedeCMS 5.7问答伪静态的实现并不复杂,只要弄清楚伪静态的实现原理和思路,还是很容易搞定的。今天,小拼就分享下DedeCMS 5.7问答伪静态的完美实现办法。 

我们先来看下DedeCMS 5.7问答模块的官方升级说明: 
1)重构问答模块,采用模块MVC架构进行重构; 
2)问答模块支持伪静态设置; 
3)重新设计问答模块前台界面,新界面同系统整体界面一致; 
4)客服中心采用新版问答模块改版; 
5)问答模块增加对二级域名的支持。 

通过上述说明,结合DedeCMS V5.7的问答源码,基本可以确定两个信息: 
1)DedeCMS 5.7问答模块仍然支持伪静态; 
2)由于织梦问答模块升级,使用了新的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”结尾,相信对使用过历史版本问答系统的朋友都不会陌生。 
如:/ask/question-4.html这样的URL在DedeCMS V5.7中会有一个问题,许多以“?ct=”开头的链接都会访问不了,如“我的提问”、“我的回答”、“提高悬赏”、“编辑/删除问题”等,会产生404错误页面。 
如:/ask/question-4.html?ct=myask其实这种现象的产生,主要是模板里链接的路径问题,采用的都是相对路径。而启用问答模块的二级域名,再结合模板修改就可以很好的解决。当然,你也可以修改模板,实现问答全站伪静态,只需多加几条伪静态规则即可。 

3)修改DedeCMS 5.7问答模块码源和模板,考虑到个别站长对HTML和PHP代码不太熟悉,下面直接把小拼修改好的问答模块共享出来: 

DedeCMS 5.7问答模块源码修改+伪静态规则 

下载完毕后,直接覆盖就可以使用了,小拼不干“坑爹”的事,都是官方源码基础上修改的,绝无第三方垃圾信息存在,放心去用吧:-) 

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织梦默认的TAG标签不是很灵活。有时候我们的标签需要进行一个分类,能不能像{dede:arclist}标签的自定义属性(如:flag=c,h),这样全站调用的时候更灵活。 全站调用TAG标签方法一般是: {dede:tag row='100' sort='new' getall='1'}a target="_blank
未审核文档的TAG会显示在TAG列表页面, 固然点击进入TAG时, 相关的未审核文章不会显示出来, 这样对用户体验是很不好的. DEDECMS暂时没有提供这个功能,所以要解决这个问题, 让DEDECMS不显示未审核文档的TAG, 就要修改TAG的显示库文件 tag.lib.php。 方法一 打
我们都知道DEDECMS生成的文件夹是按天生成的,只要传了图片就会自动建立个年月日的文件,centos系统下,都是随便排序的,很难找到对应文件夹,如果要按顺序排列,要怎么操作呢? 一、文件管理器: 修改 /dede/templets/file_manage_main.html $dh = dir($inp
我们在用到织梦dedecms软件模型的时候,手动指定地址通常只能是引用其他网址或者链接,我们要实现直接选取站内的文件,这个要怎么操作呢?下面小编一步步为您解答,最终效果如下图所示: 实现教程 1、打开 /dede/templets/soft_add.htm 找到 input type=text
我们有时候需要对织梦文档的点击量进行批量维护,比如采集来的文章,点击量都为0,需要批量修改,可以用到如下方法1。 1、在数据库里运行下面的代码就可以了,文章的点击量变得随机从500到1000 UPDATE dede_archives SET click=FLOOR(500 + (RAND() * 1000))
用过dedecms的朋友都知道,织梦cms后台系统基本参数里是无法直接上传图片的,我们更换logo图只能到ftp里替换,非常的不方便,我们如果想直接在系统基本参数里上传,要怎么处理呢?在这里需要对代码进行修改,具体流程如下: 实现方法,打开/dede/templets/sy