Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 【菜鸟看过来】win II6仿地宝网目录化伪静态完全攻略

[复制链接]
coolhey 发表于 2012-11-29 20:57:43 | 显示全部楼层 |阅读模式
本帖最后由 coolhey 于 2015-5-15 22:09 编辑

写在:2015.5.15日
12年底网站实施目录化伪静态后,今天再回头看看,我网站好几个目录的关键字都排在了百度的首页可见该目录下相关性帖子的权重确传递给这个目录。建议,伪静态目录化虽然麻烦,且偶尔抽风,但真的很值得做,前提是该目录下的帖子与版块的相关度高,且能不断更新相关内容,对SEO来说是绝对是个非常好的选择。

友情提示:
此文仅适合于winnt 、win2000 ,IIS6的虚拟主机(VPS没试过),lunix的不适用!
本人菜鸟一个,在仿地宝网目录化 伪静态吃尽了苦头,求助帖为证:
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
仿地宝网目录化 伪静态如何配置?高手帮帮忙
https://discuz.dismall.com/thread-3167500-1-1.html
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
帖子发出去后,回声寥寥,求人不如求己,痛定思痛,终于摸索出win II6仿地宝网目录化伪静态完全解决方案!
       ★★更重要的是,我会解析每一个步骤,分析其所以然,对菜鸟来说最好不过的了★ ★★

---------------------------------------------------------------------------------------------------


第一步、知道你的主机类型是什么?
       你的查找空间类型,安装空间到虚拟主机后,后台--首页--系统信息可以看到。以上图片为我的主机类型winnt  II6,如果你的虚拟主机跟我的配置一样,那么在论坛上搜到的lunix Apache教程的与你无关啦。

第二步、想清楚你需要什么类型的伪静态URL?
             例如我希望版块的形式是www.xxx.com/rumen
       而希望帖子的URL形式是  www.xxx.com/rumen/{tid}-{page}.html
       结构是 网站----版块---文章,层次不是很深,据说这样会有利于SEO优化
☆☆ 因为没搞懂{prepage}的作用,我不要它了,发觉没什么影响,欢迎大虾们来普及一下常识☆☆

第三步、修改function_core.phpforum_forumdisplay 的源代码-----作用应该是生成URL的规则:【我猜的,欢迎指正】

修改方法来自于:X2.5伪静态,IIS目录伪静态,仿地宝网,之前的伪静态地址照样可以访问
                            https://discuz.dismall.com/thread-3130046-1-1.html
                          ☆☆ 感谢原作者!☆☆
-----------------------------------------------------------------------------------
      首先 需要改一个系统文件 请自己做个备份哦
打开source\function\function_core.php 搜索:forum_forumdisplay

找到以下内容

if($type == 'forum_forumdisplay') {
        list(,,, $fid, $page, $extra) = func_get_args();
        $r = array(
            '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
            '{page}' => $page ? $page : 1,
        );
    } elseif($type == 'forum_viewthread') {
        list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
        $r = array(
            '{tid}' => $tid,
            '{page}' => $page ? $page : 1,
            '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
        );

更改为以下内容 : 注:红色是增加的代码 蓝色是改变的代码
if($type == 'forum_forumdisplay') {
        list(,,, $fid, $page, $extra) = func_get_args();
        $r = array(
            '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
            '{page}' => $page ,
        );
    } elseif($type == 'forum_viewthread') {        
        list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
       $fid = DB::result_first("SELECT fid FROM ".DB::table('forum_thread')." WHERE tid = '$tid'");
        $r = array(
            '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
            '{tid}' => $tid,
            '{page}' => $page ? $page : 1,      ★★★★注意此处我与原作者不同★★★★
            '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
        );
----------------------------------------------------------------------------------
分析: '{page}' => $page ? $page : 1  -------控制的是版分页、帖子分页的第一页是否显示
如地宝网的服务版块URL是 http://www.tiboo.cn/fuwu/,但如果此代码红色部分不删除,伪静态的生成规则下,这个版块的
                    首页会变为http://www.tiboo.cn/fuwu/1/    -----------多不爽是吧,所以我们要删掉
源代码中共有两个 page相关的,上面的那个控制版块,下面的控制帖子。
由于我想自己的帖子显示格式为
           www.xxx.com/rumen/{tid}-{page}.html ,所以第二个我没有删掉!
红色添加的两行常代码我看不懂,站长们直接照搬即可

第四步
httpd.ini 编写

由于我的域名下只有论坛,没有门户和其它xxx,所以只选了 论坛主题列表页  和 论坛主题内容页 两项,站长们可以根据自己的需要开启门户、空间、专题等等,规则编写参考 论坛的。

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP

RewriteRule ^(.*)/(\w+)/([0-9]+)*$ $1/forum\.php\?mod=forumdisplay&fid=$2&page=$3&$5
RewriteRule ^(.*)/(\w+)/([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=viewthread&tid=$3&page%3D1&page=$4
RewriteRule ^(.*)/(\w+) $1/forum\.php\?mod=forumdisplay&fid=$2&page=1 (2014.3月更新)
再增加上面一条规则可以实现  访问 某板块时,忘记输入最后一个\而导致404错误
例如输入www.xxx.com\fuwu    www.xxx.com\fuwu\  效果一样,不会出现404错误


同一行中,同样背景色的要对应起来,即相当于一个萝卜一个坑。如果不对应起来,伪静态后的URL根本访问不了论坛相应的版块 或者 帖子,
出现 404页面 或者 抱歉,指定的主题不存在或已被删除或正在被审核 那是必然的事情。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
可以学习官方默认的来总结
forum-{page}.html ➹➹➹forum-(\w+)-([0-9]+)\.html➹➹➹forumdisplay&fid=$2&page=$3&$5
thread-{tid}{page}-{prepage}.html➹➹➹ thread-([0-9]+)-([0-9]+)-([0-9]+)\.html➹➹➹ viewthread&tid=$2&extra=page\%3D$4&page=$3&$6

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
OK,在文本编辑完成后,重命名为httpd.ind 上传到 论坛所在的目录。我的论坛在根目录,所以上传到了空间的web 下。

第五步、后台伪静态配置
后台--全局--SEO设置 ,填好,可用 勾选上 , 如下 ( 同伪静态规则中对应)

看,就是这样对应的,{fid}/{page} ➹➹➹ www.xxx.com/rumen/2
                                   {fid}/{tid}-{page}.html➹➹➹ www.xxx.com/goutu/13-1.html
在回头看看 httpd.ini的规则,一个萝卜一个坑
                   {fid}/{page}➹➹➹(\w+)/([0-9]+)
                   {fid}/{tid}-{page}.html➹➹➹(\w+)/([0-9]+)-([0-9]+)\.html(\?(.*))   ★ 红色部分是 比如你输入
       www.xxx.com/goutu/13-1.html?.1234    照样可以访问帖子

【终极经验】如果你目录化伪静态后 出现 版块或者帖子不能打开,其根本原因是 没有一一对应,就如钥匙 对不上 锁,你怎么开门
                          出现问题,你得检查 httpd.ind    跟 后台SEO URL伪静态 两项!
第六步、工具---更新缓存,仿地宝网目录化伪静态 大功告成

本人菜鸟一个,u第一次做站,以上纯属个人摸索出来的经验,肯定有很多错漏之处,希望大家将就着点啊!

2012/12/25新增加内容:
目录化伪静态后,发帖不正常/404错误的完美解决方案

https://discuz.dismall.com/thread-3184856-1-1.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

风乱流年 发表于 2012-11-29 20:59:53 | 显示全部楼层
感谢分享,写的还不错

回复

使用道具 举报

 楼主| coolhey 发表于 2012-11-29 21:05:46 | 显示全部楼层
写得很辛苦,大家拍拍砖头啊!
回复

使用道具 举报

julonz 发表于 2012-12-4 14:47:23 | 显示全部楼层
发帖打不开了
回复

使用道具 举报

风乱流年 发表于 2012-12-4 14:48:54 | 显示全部楼层
{:soso_e113:}
回复

使用道具 举报

li362692680 发表于 2012-12-13 19:41:00 | 显示全部楼层
/rumen   这个板块的拼音怎么加进去的?
回复

使用道具 举报

li362692680 发表于 2012-12-13 22:26:09 | 显示全部楼层
不能发帖怎么处理
回复

使用道具 举报

li362692680 发表于 2012-12-14 12:17:18 | 显示全部楼层
和以前的伪静态不兼容吗?俺这个修改后所有地址都指跳转到同一个帖子。
回复

使用道具 举报

 楼主| coolhey 发表于 2012-12-14 22:02:45 | 显示全部楼层
li362692680 发表于 2012-12-13 19:41
/rumen   这个板块的拼音怎么加进去的?

我还有一些细节需要处理!因为我的论坛比较简单,只伪静态了版块和帖子。我是第一次做论坛,也是第一次伪静态!我所发的经验有一定的局限性,所以仅供参考!
/rumen -------是你在后台设置的版块别名。后台---论坛--找到你要绑定别名的版块--点击编辑--绑定别名里面填上就行了,否则会默认为版块的fid
回复

使用道具 举报

li362692680 发表于 2012-12-14 22:13:24 | 显示全部楼层
coolhey 发表于 2012-12-14 22:02
我还有一些细节需要处理!因为我的论坛比较简单,只伪静态了版块和帖子。我是第一次做论坛,也是第一次伪 ...

我也做站没多久,贵站地址是多少?或者站长qq多少?加个qq交流交流
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 14:35 , Processed in 0.056522 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表