今天去安装DEDECMS问答模块都是动态的,那怎么实现静态呢?要生成html的话估计很难实现。于是想到了伪静态!今天把方法总结一下:
要做好伪静态,最好是知道伪静态的原理。知道了原理后就容易做出来了。一句话讲不清感觉,要懂正则吧。
问答的伪静态不像文章。改一个地方就OK了。这个得改文件的。所以才有的人讲为什么开启了伪静态有的链接还是动态的,而且还不能伪静态,就是这个原因吧。要了解伪静态是如何生成的原理就能明白了。
这个东西是活的。不是死的。所以你可以把我的伪静态变成你的伪静态。比如我的规则写了一条RewriteRule ^tidt([0-9]+)lm([0-9]+)$ ?ct=browser&tid2=$1&lm=$2 ,这个lm起什么作用啊。要是我做站我就会不要了,尽可能的精简短小。还有这句:RewriteRule ^ask([0-9]+)$ ?ct=browser&lm=$1,我用的是ask,你也可以改成比如我的站是haoboweb.com,你就可以这样改:RewriteRule ^haoboweb([0-9]+)$ ?ct=browser&lm=$1 ,这样跟你的站接近,也更容易让人记住的。
我改的文件和规则都打包让需要的人下载用,打包的文件是GBK的。如果你的是UTF8的编码,也同样能用,但是在使用之前用软件把编码转换一下即可。文件是官方的默认文件,如果你用的不是官方模板千万不要覆盖。每一条规则我都写的有备注,大家可以参考备注修改成自己的伪静态规则。这样你与别人的伪静态规则不同,更利于SEO的收录。最后,我是在apache下面测试通过的。
# 将 RewriteEngine 模式打开
RewriteEngine On
# 请把此文件放在问答的根目录下面,然后修改以下语句中的 /ask 为你的问答目录地址
RewriteBase /ask
# 顶级栏目的伪静态规则
RewriteRule ^([0-9]+)$ ?ct=browser&tid=$1
# 子级栏目的伪静态规则
RewriteRule ^t([0-9]+)$ ?ct=browser&tid2=$1
# 问答内容页的伪静态规则
RewriteRule ^([0-9]+).html$ ?ct=question&askaid=$1
# 待解决问题,高悬赏问题,新解决问题,精彩推荐的列表页规则
RewriteRule ^ask([0-9]+)$ ?ct=browser&lm=$1
# 导航菜单(全部分类)伪静态规则
RewriteRule ^type$ ?ct=type
# 顶级栏目列表页中的伪静态规则
# 等待解决,已解决,高悬赏,零回答,快到期,全部查看的伪静态规则
RewriteRule ^tid([0-9]+)lm([0-9]+)$ ?ct=browser&tid=$1&lm=$2
# 全部查看伪静态规则
RewriteRule ^vtid([0-9]+)$ ?ct=browser&tid=$1
# 子级栏目列表页中的伪静态规则
# 等待解决,已解决,高悬赏,零回答,快到期,全部查看的伪静态规则
RewriteRule ^tidt([0-9]+)lm([0-9]+)$ ?ct=browser&tid2=$1&lm=$2
# 全部查看伪静态规则
RewriteRule ^tidt([0-9]+)$ ?ct=browser&tid2=$1
# 编辑提问伪静态规则
RewriteRule ^askaid([0-9]+)$ ?ct=question&ac=edit&askaid=$1
# 我的提问伪静态规则
RewriteRule ^myask$ ?ct=myask
# 我的回答伪静态规则
RewriteRule ^answer$ ?ct=myask&ac=answer3
DEDECMS问答模块实现伪静态化 |