标签: discuz

  • IIS7下phpwind8.7转换X2.5后使百度收录的老链接仍有效的方法

    大家都知道,在PW转换到DZ后,帖子等链接会发生变化,这就导致了百度以前收录的页面用户访问会打不开的情况,如果一个收录几十万页面的论坛遇到这个情况是很尴尬的,而且等百度重新收录新地址估计需要挺长的一段时间,所以,如何从老地址跳转到相应的新地址就很重要了,因为偶是小菜,昨天我找了一天都没解决,今天中午终于把它弄好了,下面分享一下。

    有几个相关的帖子大家可以参考下:

    【phpwind=>Discuz!X 部分 rewrite 规则】

    【phpwind8.7转换成功X2.5 保持原伪静态链接】

    由于我论坛的环境和以上两个不同,所以一直没成功。。。

    以下是我在IIS7环境下成功的:

    [cce_xml]
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    	<system.web>
    		<compilation debug="true" />
    		<customErrors mode="Off" />
      	</system.web>
        <system.webServer>
            <defaultDocument>
                <files>
                    <add value="forum.php" />
                </files>
            </defaultDocument>
            <rewrite>
            	<rules>
                    <clear />
                    <rule name="已导入的规则 1">
                        <match url="^thread-htm-fid-([0-9]+)\.html$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="forum.php?mod=forumdisplay&amp;fid={R:1}" appendQueryString="false" />
                    </rule>
                    <rule name="已导入的规则 2">
                        <match url="^read-htm-tid-([0-9]+)\.html$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="forum.php?mod=viewthread&amp;tid={R:1}" appendQueryString="false" />
                    </rule>
                    <rule name="已导入的规则 3">
                        <match url="^(.*)-htm-(.*)$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}.php?{R:2}" appendQueryString="false" />
                    </rule>
                    <rule name="portal_topic">
                        <match url="^(.*/)*topic-(.+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/portal.php\?mod=topic&amp;topic={R:2}&amp;{R:3}" />
                    </rule>
                    <rule name="portal_article">
                        <match url="^(.*/)*article-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/portal.php\?mod=view&amp;aid={R:2}&amp;page={R:3}&amp;{R:4}" />
                    </rule>
                    <rule name="forum_forumdisplay">
                        <match url="^(.*/)*forum-(\w+)-([0-9]+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/forum.php\?mod=forumdisplay&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}" />
                    </rule>
                    <rule name="forum_viewthread">
                        <match url="^(.*/)*thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/forum.php\?mod=viewthread&amp;tid={R:2}&amp;extra=page%3D{R:4}&amp;page={R:3}&amp;{R:5}" />
                    </rule>
                    <rule name="group_group">
                        <match url="^(.*/)*group-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/forum.php\?mod=group&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}" />
                    </rule>
                    <rule name="home_space">
                        <match url="^(.*/)*space-(username|uid)-(.+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/home.php\?mod=space&amp;{R:2}={R:3}&amp;{R:4}" />
                    </rule>
                    <rule name="home_blog">
                        <match url="^(.*/)*blog-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/home.php\?mod=space&amp;uid={R:2}&amp;do=blog&amp;id={R:3}&amp;{R:4}" />
                    </rule>
                    <rule name="forum_archiver">
                        <match url="^(.*/)*(fid|tid)-([0-9]+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/index.php\?action={R:2}&amp;value={R:3}&amp;{R:4}" />
                    </rule>
                    <rule name="plugin">
                        <match url="^(.*/)*([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+).html\?*(.*)$" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Rewrite" url="{R:1}/plugin.php\?id={R:2}:{R:3}&amp;{R:4}" />
                    </rule>
            	</rules>
                <rewriteMaps>
                    <rewriteMap name="^(.*/)*read-htm-tid-([0-9]+).html$" />
                </rewriteMaps>
            </rewrite>
        </system.webServer>
    </configuration>
    [/cce_xml]

    其中【已导入的规则】那三条就是针对于PW的帖子和版块链接转到DZ帖子和版块链接用的,其他的规则就是官方默认的,IIS7下的伪静态是修改web.config文件的,最后尤其重要的一点,貌似规则有优先顺序的?导入的那三条最好放在最上面!!否则有可能不起作用。

    论坛最重要的链接应该就是帖子和版块了吧,其他模块的链接转换我还没捣鼓,因为链接也不多,希望已经捣鼓出来的同学回帖提示我一下,共享一下撒~注意哦,我希望是在IIS7环境下的~

  • Discuz哀悼日只让首页变灰

    变灰代码是为全国哀悼日准备的,下面进入正题。

    以下的这些变灰代码只对IE内核有效,厄,其他浏览器怎么实现,我目前不知道,如果有高手可以解答下~

    为方便站点哀悼,特提供css滤镜代码,以表哀悼。以下为全站CSS代码。

    html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }

    使用方法:这段代码可以变网页为黑白,将代码加到CSS最顶端就可以实现素装。建议全国站长动起来。为在地震中遇难的同胞哀悼。

    如果网站没有使用CSS,可以在网页/模板的HTML代码<head>和</head> 之间插入:

    <style>
    html{filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}
    </style>

    有一些站长的网站可能使用这个css 不能生效,是因为网站没有使用最新的网页标准协议

    <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
    <html xmlns=”http://www.w3.org/1999/xhtml”>

    请将网页最头部的<html>替换为以上代码。

    有一些网站FLASH动画的颜色不能被CSS滤镜控制,可以在FLASH代码的<object …>和</object>之间插入:

    <param value=”false” name=”menu”/>
    <param value=”opaque” name=”wmode”/>

    最简单的把页面变成灰色的代码是在head 之间加

    <style type=”text/css”>
    html {
    FILTER: gray
    }
    </style>

    一般的discuz论坛在 你的控制css 文件下修改
    /images/header/header.css 这个文件

    ==============================================================
    以上都是随便百度下就能搜到的,下面我介绍下怎么只在discuz首页变灰,其他页面正常显示的方法。
    方法其实挺简单的,就是因为discuz已经把每个模块都分开了,所以我们可以针对自己想要改变的模块进行更改就可以了,因为DZ的header.htm文件是共用的,所以我们要更改它就要把它再复制一个文件出来,名字稍微有点差别,比如header2.htm,这样其他页面会正常调用header.htm,然后把我们要改的那个模块里的
    <!–{subtemplate common/header}–>
    改为
    <!–{subtemplate common/header2}–>
    这样这个模块就单独调用了header2.htm文件。
    步骤也简单,第一步,复制一个\template\default\common\header.htm文件,重命名为header2.htm
    第二步,按照以上介绍的修改方法,在代码<head>和</head> 之间插入:

    <style>
    html{filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}
    </style>

    第三步,找到相应的模块的首页文件,比如一般我们修改论坛首页就是\template\default\forum\discuz.htm文件,修改第一行

    <!–{subtemplate common/header}–>

    改为

    <!–{subtemplate common/header2}–>

    OK,更新缓存下就可以了。

    附上默认模板的目录文件结构http://www.discuz.net/thread-1892710-1-1.html