大家都知道,在PW转换到DZ后,帖子等链接会发生变化,这就导致了百度以前收录的页面用户访问会打不开的情况,如果一个收录几十万页面的论坛遇到这个情况是很尴尬的,而且等百度重新收录新地址估计需要挺长的一段时间,所以,如何从老地址跳转到相应的新地址就很重要了,因为偶是小菜,昨天我找了一天都没解决,今天中午终于把它弄好了,下面分享一下。
有几个相关的帖子大家可以参考下:
【phpwind=>Discuz!X 部分 rewrite 规则】
由于我论坛的环境和以上两个不同,所以一直没成功。。。
以下是我在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&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&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&topic={R:2}&{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&aid={R:2}&page={R:3}&{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&fid={R:2}&page={R:3}&{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&tid={R:2}&extra=page%3D{R:4}&page={R:3}&{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&fid={R:2}&page={R:3}&{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&{R:2}={R:3}&{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&uid={R:2}&do=blog&id={R:3}&{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}&value={R:3}&{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}&{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环境下的~
纯支持。
貌似现在大部分都是dz
@阿邙 : 是啊,两家都被收购,但貌似就目前来说DZ好像发展好一点,我个人也比较喜欢DZ的 😀