简单配置discuz x2.5伪静态规则

一、discuz x2论坛首页“最后发表”帖子链接静态化
现在还没有找到完美的解决方法,不过通过这样做还是基本实现我想要的形式,有两种方法,各有各的不足。
方法1、/source/module/forum/ 下的forum_redirect.php

 代码如下 复制代码

dheader(‘Location: forum.php?mod=viewthread&tid=’.$_G['tid'].$pageadd.’#lastpost’);
换成
header("HTTP/1.1 301 Moved Permanently");
dheader(‘Location:thread-’.$_G['tid'].’-’.$page.’-1.html#lastpost’);

虽然首页显示是动态地址,但是点击就会301跳转到静态页,这个方法是定死的,取消了伪静态设置还是会跳转到这个伪静态地址,所以一定开启了伪静态而且必须是系统默认的方式,才可以这样修改
 
方法2、这个方法是直接修改模板discuz.htm中的

 代码如下 复制代码
forum.php?mod=redirect&tid=$forum[lastpost][tid]&goto=lastpost#lastpost
换成
forum.php?mod=viewthread&tid=$forum[lastpost][tid]

一共有三处
这个方法可是完美支持自动判断网站是伪静态还是动态,不足之处是点击不会跳转到最后回复的帖子,只会跳转到最后回复的主题。
二、discuz x2“上一主题、下一主题”链接静态化
利用$_G[tid]-1 和 $_G[tid]+1 来做连接
打开viewthread.htm文件
查找

 代码如下 复制代码
 <a href="forum.php?mod=redirect&goto=nextoldset&tid=$_G[tid]" title="{lang last_thread}"><img src="{IMGDIR}/thread-prev.png" alt="{lang last_thread}" class="vm" /></a>
<a href="forum.php?mod=redirect&goto=nextnewset&tid=$_G[tid]" title="{lang next_thread}"><img src="{IMGDIR}/thread-next.png" alt="{lang next_thread}" class="vm" /></a>
修改为:
 <!--{eval $up_thread=$_G[tid]-1;$down_thread=$_G[tid]+1;}-->
<a href="thread-$up_thread-1-1.html" rel="nofollow" title="{lang last_thread}"><img src="{IMGDIR}/thread-prev.png" alt="{lang last_thread}" class="vm" /></a>
<a href="thread-$down_thread-1-1.html" rel="nofollow" title="{lang next_thread}"><img src="{IMGDIR}/thread-next.png" alt="{lang next_thread}" class="vm" /></a>

如果主题被删除就找不到了用这种方法。。www.111cn.net 。

三、Discuz X2.0论坛帖“复制链接”伪静态实现方法
打开 /template/default/forum/viewthread.htm 在大约200行左右找到以下代码:

 代码如下 复制代码
forum.php?mod=viewthread&tid=$_G[tid]$fromuid
换成
forum.php?mod=viewthread&tid=$_G[tid]
就可以了

 
四、discuz x2帖子列表页默认打开修改为新窗口打开
discuz x2帖子列表默认打开是本窗口打开的,不符合国内用户使用习惯,最正规的修改如下面两个步骤:
1: 根目录/static/js/forum.js
找到 atarget函数
改成

 代码如下 复制代码
function atarget(obj) {
obj.target = getcookie('atarget') ?  '': '_blank';
}

2:把‘打开新窗口’改成‘本窗口打开’ 修改如下:
根目录/template/default/forum/forumdisplay_list.html文件中:
找到

 代码如下 复制代码
<span id="atarget" {if !empty($_G['cookie']['atarget'])}onclick="setatarget(0)" class="y atarget_1"{else}onclick="setatarget(1)" class="y"{/if} title="{lang new_window_thread}">{lang new_window}</span>
用下边的替换即可 www.111cn.net
<span id="atarget" {if !empty($_G['cookie']['atarget'])}onclick="setatarget(0)" class="y atarget_1"{else}onclick="setatarget(1)" class="y"{/if} title="本窗口打开帖子">本窗口</span>

五、discuz x2 rss输出链接的静态化

今天(2011-12-11)又发现一个discuz x2 url地址不规范的地方,就是rss的地址不能自动判断网站设置的是静态还是动态,一律会输出动态的样式,那对于开启了伪静态的朋友来说是个很不好的地方,如何将rss输出结果变成静态化呢,下面是具体修改步骤:
打开source/module/forum/forum_rss.php

 代码如下 复制代码
1、论坛首页URL标准化:如果不需要标准的人不用修改

<link>{$_G[siteurl]}forum.php</link>
改为
<link>{$_G[siteurl]}</link>
2、主题列表页URL伪静态:把
<link>{$_G[siteurl]}forum.php?mod=forumdisplay&amp;fid=$rssfid</link>
改为
<link>$_G[siteurl]forum-$forum[fid]-1.html</link>
3、帖子内容页URL伪静态:把
<link>$_G[siteurl]forum.php?mod=viewthread&amp;tid=$thread[tid]</link>
改为
<link>$_G[siteurl]thread-$thread[tid]-1-1.html</link>

六、discuz x2 帖子链接统一(帖子链接唯一化)
开启了伪静态的帖子链接是这样的形式:thread-x-y-z.html,其中x是帖子的id(固定不变的),y是帖子的页数(也是固定的),z是帖子所在列表页的页数(这个是变化的,随着帖子回复或者新帖的加入,所处位置就会变化),如何让z不变呢,可能通过修改template/default/forum/forumdisplay_list.htm解决,修改后虽然帖子的url统一了,但是在帖子页里点击“返回列表”,返回的是列表第一页而不是帖子所在的列表页。
 
找到

 代码如下 复制代码
<a href="forum.php?mod=viewthread&tid=$thread[tid]&{if $_G['gp_archiveid']}archiveid={$_G['gp_archiveid']}&{/if}extra=$extra"$thread[highlight]{if $thread['isgroup'] == 1 || $thread['forumstick']} target="_blank"{else} onclick="atarget(this)"{/if} class="xst" >$thread[subject]</a>
修改为
<a href="forum.php?mod=viewthread&tid=$thread[tid]" $thread[highlight]{if $thread['isgroup'] == 1} target="_blank"{/if} onclick="atarget(this)" class="xst">$thread[subject]</a>

7.下一主题上一主题图片修改.
 

8.开启伪静态。
全局,seo设置,
论坛主题列表页 {fid}, {page}  
论坛主题内容页 {tid}, {page}, {prevpage}
可用上打勾。
然后 点 查看当前的 Rewrite 规则
URL 静态化  完工 ..

时间: 2024-11-18 02:00:42

简单配置discuz x2.5伪静态规则的相关文章

Discuz X2子目录伪静态的实现方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 前几天帮人实现Discuz X2的子目录伪静态,以前没做过,就去查了下百度和Discuz论坛,发现好多人都在找这样的伪静态方法,可是都没真正能解决的方法.Discuz X2现在用的人还是比较多的,我不知道有多少人用的是IIS7的,用Apache的就好办一些,因为.hacess是可以设置子目录的伪静态规则的,但是 在IIS7下,webconfi

discuz 2.5伪静态规则详解介绍

Nginx伪静态规则:  代码如下 复制代码 rewrite ^([^.]*)/brand.html$ $1/plugin.php?id=sanree_brand last; rewrite ^([^.]*)/brand-index-(.+)-(.+)-(.+)-(.+).html$ $1/plugin.php?id=sanree_brand&mod=list&tid=$2&did=$3&filter=$4&listmode=$5 last; rewrite ^([

Discuz x2.5积分策略设置和积分规则注意事项

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 积分就像流通的货币,合理的积分策略对论坛帖子量,用户间的互动以及防灌水有很大的协助作用.之前在写Discuz x2.5 用户组设置策略方法和Discuz x2.5 论坛防灌水机策略的文章时候就提到了和积分策略的关联,下面我在站帮网和大家一起分享下Discuz x2.5积分策略的设置方法和一些注意事项. Discuz x2.5积分设置涉及到的地

Discuz与Ecshop最新的IIS Rewrite伪静态规则

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 我搞了2个小站一个论坛 一个网店 一直想同时实现伪静态,测试了很多次都没有成功.在网上找了很多Rewrite伪静态规则都不管用失败的主要是ecshop .最后求助admin5的汉三哥哥帮我从新写了一份规则:). 现在提供给大家,希望可以帮到更多和我一样情况的哥哥姐姐们. Discuz 的设置就不说了 官方有的,这里重点说下ecshop 请在后

wordpress 伪静态规则与配置方法详解

设置一次系统将自动写入.htaccess 一个新规则, SO ,请先在固定链接那边填写自定义结构 :/%postname% , 保持更新后,到服务器根目录下在.htaccess ,把规则替换成下面规则即可! apache wordpress 伪静态规则 如果你apache没开支持htaccess我们可参考:http://www.111cn.net/phper/apache/49022.htm # BEGIN WordPress  代码如下 复制代码 RewriteEngine On Rewrit

discuz x1.5 伪静态的配置方法(iis,apache)

discuz x1.5 伪静态的配置方法(iis,apache) 如是Apache服务器,操作如下: 建立.htaccess文件,在该文件里面写入如下伪静态规则: 复制代码 代码如下: # 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /discuzxx # Rewrite 系统规则请勿修改 RewriteCond %{QUERY

LNMP下WordPress伪静态规则配置

更换了 VPS,就要开始给网站搬家,搬家出现的第一个问题就是 WordPress 的伪静态问题.新的VPS 采用了 LNMP 环境,安装的是 AMH 面板.之前使用的是LAMP环境的 Webmin,但是 Webmin 功能过于臃肿复杂,比较耗内存,而且Nginx 对比 Apache 更高效稳定.所以这次决定采用 LNMP 环境.虽说这样比较折腾,但是只有去折腾才会有意外的收获. Nignx 不支持 .htaccess 伪静态规则,需要修改 Nignx 相应的配置文件添加伪静态规则,以下记录了整个

phpcms v9伪静态规则iis/apache配置方法

phpcms v9伪静态规则 win下IIS 新建一个记事本文件,将文件名改为:httpd.ini.再将以下代码粘贴进去.  代码如下 复制代码 [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 RewriteEngine on RewriteRule ^(.*)content-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/index.php?m=content&c=index&a

Linux下防火墙的简单配置与插入规则介绍_Linux

查看当前的防火墙设置 iptables -L INPUT -n --line-numbers 删除一条策略,例如第4行策略 iptables -D INPUT 4 -A:在尾部插入 -I (insert)在指定链中插入一条新规则,为指明插入到第几行 (如:在第七行插入) iptables -I INPUT 7 -p tcp -m state --state NEW -m tcp --dport 81 -j ACCEPT 然后保存 service iptables save 然后重启 servic