discuz在nginx上怎么配置伪静态?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了discuz在nginx上怎么配置伪静态?相关的知识,希望对你有一定的参考价值。

参考技术A Linux下nginx支持.htaccess文件实现伪静态的方法
From:http://hi.baidu.com/yhzstar/blog/item/d61b36237cd6a37a35a80f8a.html
方法如下:1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件,
如本人的一个Discuz论坛目录:vim /var/www/html/168pc/bbs/.htaccess2. 在里面输入规则,我这里输入Discuz的伪静态规则(这里仅增加Discuz的伪静态规则):# nginx rewrite rule
rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;
# end nginx rewrite rulewq保存退出。3. 修改nginx配置文件:vim /etc/nginx/nginx.conf4. 在需要添加伪静态的虚拟主机的server中引入.htaccess文件,如图所示:(注意第8行)
include /var/www/html/168pc/bbs/.htaccess;(把这个改成你.htaccess文件的具体位置)wq保存退出。5. 重新加载nginx配置文件:/etc/init.d/nginx reload

文章参考:http://www.ha97.com/942.html

服务器上配置好之后,登录discuz!软件后台(以最新正式版discuz!X2.5为例),全局,SEO设置,勾选可用,提交。查看rewrite规则,做成.htaccess文件,放到discuz目录即可实现discuz!伪静态。(DZ动力)

Nginx 伪静态简单配置

参考技术A 通常,我们在美化或者希望能更好的兼容搜索引擎的时候我们常常使用nginx的rewrite模块来实现,例如:我们希望原本的访问链接xxxx.com/xx/xx/xx.php?id=12,变成这种:xxx.com/xx/xx/12.html;又或者是原本的访问链接太长,我们希望能够简洁一点等等吧,下面我将针对这两种情况来做配置。

(1) 页面伪静态
将xxxx.com/xx/xx/xx.php?id=12这种访问链接变成xxx.com/xx/xx/12.html这种
下面笔者在本地的网站目录下创建一个test.php文件

原本的访问链接: http://w.myblog.com/api/php/test.php?id=1 ,我们访问看下:

需要注意的是:rewrite 完后不能写break,否则php文件无法解析。
我们使用链接: http://w.myblog.com/api/php/1.html 来访问下,

解析php的那段避免累赘,这里就不再写上了。
我们访问看下: http://w.myblog.com/api/php/test-4.html

(2) 简化访问路径
使用过tp的或者其他一些类型的php框架小伙伴们我们在访问方法时需要这样访问: http://w.tp5.com/index.php/index/index/info ,这个表示访问index模块的index控制器中的info方法,但是这么访问不太方便,我们希望去掉index.php,直接使用 http://w.tp5.com/index/index/info 访问,那我们就需要配置下nginx,做一个rewrite.

这段配置的意思是:当访问的文件或者目录不存在时,重定向到某个php文件.
!-e 意思是:-e和!-e用来判断是否存在文件或目录。
last: 相当于apache里面的[L]标记,表示rewrite.
s:表示参数.
加上配置后我们再来访问下:

发现可以正常访问了。需要注意的是:如果不写s=xxx,配置会不生效。
好了,本篇文章就到这里了,有需要补充的小伙伴欢迎在下面给我留言哦,看到会及时回复的。

以上是关于discuz在nginx上怎么配置伪静态?的主要内容,如果未能解决你的问题,请参考以下文章

nginx下discuz! x3 伪静态化的配置

Apache下使用rewrite实现discuz伪静态的配置

运维工程师之discuz论坛伪静态

Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx

Centos下让nginx支持.htaccess文件实现伪静态的方法

Nginx伪静态规则怎么设置