曲径通幽论坛

标题: 从 phpwind8.7 转 DiscuzX3 伪静态完美转换 [打印本页]

作者: beyes    时间: 2013-10-4 18:18
标题: 从 phpwind8.7 转 DiscuzX3 伪静态完美转换
本站原先也是采用 phpwind8.7 ,但是出于种种考量,还是转到了 Discuz X3 来了。


转换工具 Discuz 那边已经提供了,基本算是完美,但也有瑕疵,比如列表标签它就没提供转换,phpwind 里是 [li] ,而 Disucz 里是 list 。还有更讨厌的是 html 的字符实体,它会原封不动的输出这些,这个需要你自己批量修改数据库,但也比较简单。


作者: cqtnbbs    时间: 2013-11-23 11:16
下载不下载,要铜币,尼玛注册才花了一块钱,直接说好多钱卖就行了,搞的这么麻烦。铜币怎么弄?
作者: cqtnbbs    时间: 2013-11-23 11:23
下载了,直接放在DZ根目录就OK?
作者: beyes    时间: 2013-11-23 11:37
cqtnbbs 发表于 2013-11-23 11:16
下载不下载,要铜币,尼玛注册才花了一块钱,直接说好多钱卖就行了,搞的这么麻烦。铜币怎么弄?

铜币登录,回帖发帖都可以有。query.php 放在 simple 目录,其它两个放在根目录。注意将代码中的域名改成你自己的。
作者: cqtnbbs    时间: 2013-11-23 11:49
谢谢,thread.php 已经可以用了

我是win iis的环境, Ngnix.conf 这个怎么用?
我发现  http://www.cqtn.cn/simple/?t85749.html   PW原来的还是不能访问
作者: beyes    时间: 2013-11-23 11:56
cqtnbbs 发表于 2013-11-23 11:49
谢谢,thread.php 已经可以用了

我是win iis的环境, Ngnix.conf 这个怎么用?

ngnix.conf 使用的是 ngnix 作为 WEB 服务器。

query.php 是可以用的,注意将代码里面的域名改为你自己的,我这里的是有 /bbs 目录的,你的没有就省略掉。
作者: cqtnbbs    时间: 2013-11-23 20:26
[AppleScript] 纯文本查看 复制代码
[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%

3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
rewrite ^([^\.]*)/thread-htm-fid-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2 last;
rewrite ^([^\.]*)/thread-htm-fid-([0-9]+)-page-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/read-htm-tid-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2 last;
rewrite ^([^\.]*)/read-htm-tid-([0-9]+)-page-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&page=$3 last;
# rewrite ^([^\.]*)/simple/?t([0-9]+\.html)$ $1/archiver/index.php?action=tid&value=$2 last;
# rewrite ^([^\.]*)/simple/?f([0-9]+\.html)$ $1/archiver/index.php?action=fid&value=$2 last;
rewrite ^([^\.]*)/simple/(.*)$ $1/simple/query.php last;
rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
rewrite ^([^\.]*)/archiver/(fid|tid)-([0-9]+)\.html(\?(.*))*$ $1/simple/query.php last;
if (!-e $request_filename) {
        return 404;
}


我的配置啊,就这个链接能跳转  http://www.cqtn.cn/read.php?tid-13386-page-3.html  

这个不能 http://www.cqtn.cn/simple/?t5330.html
这个不能 http://www.cqtn.cn/simple/index.php?t37247_1.html
作者: beyes    时间: 2013-11-23 22:42
cqtnbbs 发表于 2013-11-23 20:26
[mw_shl_code=applescript,true]

# 3600 = 1 hour

我之前的链接形式只有:index.php?t1234.html 或 index.php?f5678.html
所以代码中也只针对这两情况进行了处理,即提取的是 1234 和 5678 这些帖子ID和版块ID的编号。

你这个 t37247_1.html 中含有 _1 这种形式,我不知道是什么,且 DZ 里也没有对应的链接形式,故而会没法处理,并转到首页。
作者: 1000year    时间: 2015-6-13 23:51
PW8.7动态又如何301到DZ呢?
作者: 1000year    时间: 2015-6-13 23:52
楼主还在不在?
作者: 1000year    时间: 2015-6-13 23:52
我的情况是PW8.7动态贴链接被收录了,现在升级了DZ3.2
作者: 1000year    时间: 2015-6-13 23:52
所以希望楼主能够帮忙解答一下PW8.7的动态链接如何301到DZ3.2
作者: 1000year    时间: 2015-6-13 23:53
本人菜鸟一个
作者: 1000year    时间: 2015-6-13 23:53
如果可以的话通俗一点请教下各位大大
作者: beyes    时间: 2015-6-14 09:37
1000year 发表于 2015-6-13 23:53
如果可以的话通俗一点请教下各位大大

我已经忘了 8.7 动态的链接是啥样了。。你已经升级到 DZ3.2?
作者: 1000year    时间: 2015-6-14 22:20
beyes 发表于 2015-6-14 09:37
我已经忘了 8.7 动态的链接是啥样了。。你已经升级到 DZ3.2?

是的啊不过8.7的现在还在的
作者: 1000year    时间: 2015-6-14 22:21
1000year 发表于 2015-6-14 22:20
是的啊不过8.7的现在还在的

8.7的动态链接是 域名/read.php?tid=xxx这个样子
作者: 1000year    时间: 2015-6-14 22:21
1000year 发表于 2015-6-14 22:21
8.7的动态链接是 域名/read.php?tid=xxx这个样子

然后版块的链接似乎是域名/thread.php?fid=xxx
作者: 1000year    时间: 2015-6-14 22:22
1000year 发表于 2015-6-14 22:21
然后版块的链接似乎是域名/thread.php?fid=xxx

如果可以做出read.php和thread.php两个可以301重定向到DZ的文件应该就可以了,可是我现在比较菜鸟,搞不定这一步,求大神帮忙
作者: beyes    时间: 2015-6-15 10:55
1000year 发表于 2015-6-14 22:22
如果可以做出read.php和thread.php两个可以301重定向到DZ的文件应该就可以了,可是我现在比较菜鸟,搞不 ...

这个修改不难,比如对着 read.php 里的  $tid_first_page = '/tid-([0-9]+)\.html/i'; 改成 $tid_first_page = '/tid=([0-9]+)/i'; ,这样就能匹配 pw8.7 的链接了。

然后改 preg_match 函数底下的 $tid_one 变量,对应着 DZ3.2 的抄过来即可,比如这里这个帖子:

$tid_one = "forum\.php\?mod=viewthread&tid=$matches[1]" 就可以了

其他收录的链接类似如此。修改的话,可能不会一次成功,多试几次就可以了。最后在百度里访问你被收录的帖子,如果能正确跳转到现在的帖子链接,那就说明修改成功了。
作者: 1000year    时间: 2015-6-16 22:52
beyes 发表于 2015-6-15 10:55
这个修改不难,比如对着 read.php 里的  $tid_first_page = '/tid-([0-9]+)\.html/i'; 改成 $tid_first_p ...

我还在测试阶段,没有关闭PW呢,原收录现在还在,打算先测试好了再转。
但是我是菜鸟,所以到各种函数之类的就搞不来了,悲了个催的。。。。
大神能否帮我改改好,就直接让类似read.php?tid=123直接301跳转到DZ的默认编号为123的贴子下就行。
先谢谢大神啦
作者: beyes    时间: 2015-6-17 11:20
1000year 发表于 2015-6-16 22:52
我还在测试阶段,没有关闭PW呢,原收录现在还在,打算先测试好了再转。
但是我是菜鸟,所以到各种函数之 ...

我不知道你收录的那些链接都有哪些,比如某个帖子收录的链接为 read.php?tid=xxx,你将下面的内容保存为 read.php ,然后放在 dz 的根目录下即可,
[PHP] 纯文本查看 复制代码
<?php

        $domain = "http://你的网址";

        $request_url = $_SERVER['QUERY_STRING'];


        if (empty($request_url)) {
                header("Location:$domain");
        }

       $tid_first_page = '/tid=([0-9]+)/i';

       if (preg_match($tid_first_page, $request_url, $matches)) {
               
                $tid_one = "forum\.php\?mod=viewthread&tid=$matches[1]"

                header("HTTP/1.1 301 Moved Permanently");
                header("Location:$tid_one");
                       
        }
       else {

                header("Location:http://你的网址");
        }
?>





作者: 1000year    时间: 2015-6-23 11:59
beyes 发表于 2015-6-17 11:20
我不知道你收录的那些链接都有哪些,比如某个帖子收录的链接为 read.php?tid=xxx,你将下面的内容保存为  ...

好的谢谢大神我先试试
作者: 1000year    时间: 2015-6-23 12:07
beyes 发表于 2015-6-17 11:20
我不知道你收录的那些链接都有哪些,比如某个帖子收录的链接为 read.php?tid=xxx,你将下面的内容保存为  ...

好像不行,我再试试看。
我的PW收录是  域名/read.php?tid=xxx
其中xxx大概是1-6000之间。

作者: 1000year    时间: 2015-7-10 19:12
beyes 发表于 2015-6-17 11:20
我不知道你收录的那些链接都有哪些,比如某个帖子收录的链接为 read.php?tid=xxx,你将下面的内容保存为  ...

用那个做read.php后,进入read.php?tid=xxx的时候会提示这个
Parse error: syntax error, unexpected T_STRING in C:\dz\read.php on line 18
作者: 1000year    时间: 2015-7-10 19:12
beyes 发表于 2015-6-17 11:20
我不知道你收录的那些链接都有哪些,比如某个帖子收录的链接为 read.php?tid=xxx,你将下面的内容保存为  ...

大神帮帮忙呀,都到这份上了,帮解决一下万谢!




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2