老薛主机DH主机
A-A+

二级目录discuz伪静态解决方案

2016年07月03日 网站建设 暂无评论 阅读 437 views 次

有心的人可能会发现,我这次赚客成长会是建在二级目录里的,而不是二级域名。也就是www.52zd.com/bbs,而不是bbs.52zd.com。

至于为什么这么建呢,据说是因为/bbs的形式,如果bbs权重起来可以带动主域名的权重。我觉得简单的理解,可能对搜索引擎而言,/bbs的形式就与我们在wordpress新建个分类目录没大区别。而bbs.52zd.com则完全是一个新的域名。

采用二级目录建站,就要求主目录网站与二级目录的网站都得放在同一个主机里。因为www.52zd.com/bbs是无法单独解析的。正是因为这个原因,我把博客从老薛搬家到了vultr上。也因为数据库表的格式问题,导致我那天搬家一直恢复不成功,要看八卦的可以看《罪魁祸首竟然是他》。

我不知道是不是大多数vps环境都默认只设置主域名的伪静态。比如我在用LNMP一键安装包时,会要求选择伪静态规则

LNMP伪静态选择

AMH的后台安装完rewrite的模块后,也有伪静态的选择。

但不管是LNMP还是AMH的,网站二级目录下的伪静态是没有的,需要自己去修改。我也是在网上找了好多文章搞定了这件事情。一方面也是因为我对VPS不熟悉,另外一方面也是写的人都写的太含糊了点。


解决方案

比如www.52zd.com已经实现伪静态,而我在想在bbs目录再安装一个discuz或者其它程序(比如:www.52zd.com/bbs),那么默认的伪静态规则是不会继承的,我们需要引入新的规则来实现。

一、新建rewrite规则,复制下面的规则然后另存为discuz2.conf

location /bbs/ {
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 ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
if (!-e $request_filename) {
return 404;
}
}

如果不会新建,那也可以把vps里原先就存在的伪静态规则文件复制一份进行修改。不管是AMH的还是LNMP的都是自带discuz的规则的。

二、将创建的discuz2.conf存放至服务器/usr/local/nginx/conf/rewrite目录中

三、打开/usr/local/nginx/conf/vhost目录,找到网站的配置文件,比如我的是52zd.com.conf在server{}引入新增的discuz2.conf文件。

原先是

include wordpress.conf;

修改为

include wordpress.conf;

include discuz2.conf;

然后保存并覆盖,如果怕改错,建议先备份。

 

四、重启VPS就可以了

 

这里要感谢下xiaoz.me,我是在他博客找到的解决方案。虽然他是wordpress下新建目录再做个wordpress,而我是WP下建DZ。他是AMH,我是LNMP,但是原理都是相同的。我就是按照他的步骤解决的这个问题。

但我在看到他说在52zd.com.conf在server{}引入新增的discuz2.conf文件时,写成

include wordpress.conf discuz2.conf;

而不是

include wordpress.conf;

include discuz2.conf;

最终还是厚颜无耻的加他QQ,咨询他,结果对方帮我上线看了下,给我修改了。还是好人多,另外自己也得脸皮厚

标签:
greenvpn

给我留言

Copyright © 赚刀博客 保留所有权利.   主机鸣谢:  老薛主机   主题鸣谢:  Ality    网站统计:

用户登录

分享到: