站长之家- 经验 2011-04-08T10:37:47 +08:00

几个Nginx子目录rewrite的例子

我们已经有很多客户在 VPS 上使用 Nginx,对于刚从 Apache 转过来的客户最常遇到的一个问题就是怎么弄 Nginx 下的 rewrite 以及怎么把 Apache 里的 .htaccess 转化成 Nginx,网上关于这方面的资料一大堆,关于 wordpress, discuz, phpcms, ecshop, shopex 等的 rewrite 应有尽有,直接 copy 就可以。还有一个 Nginx 新手常见的问题是拿到这些 rewrite 规则后不知道怎么改,比如 Nginx 下子目录的 rewrite 应该改成什么样子?/ 下是 wordpress,/bbs 下装个 discuz,/ 是 discuz,/blog 下装个 wordpress 或者 / 下是 wordpress,/blog 下再装个 wordpress 等,这样的 rewrite 怎么改呢?弄几个例子放到我们的 FAQ 里供参考:

WordPress 安装在子目录 /blog 下:

 location /blog/ {
    root   /home/www/vpsee.com;
    index  index.php index.html index.htm;
    if (!-e $request_filename) {
       rewrite ^.+/?(/blog/wp-.*) $1 last;
       rewrite ^.+/?(/blog/.*\.php)$ $1 last;
       rewrite ^(.+)$ /blog/index.php?q=$1 last;
    }
}

Discuz! 7.2 安装在子目录 /bbs 下:

 location /bbs/ {
    root   /home/www/vpsee.com;
    index  index.php index.html index.htm;
    rewrite ^/bbs/archiver/((fid|tid)-[\w\-]+\.html)$ /bbs/archiver/index.php?$1 last;
    rewrite ^/bbs/forum-([0-9]+)-([0-9]+)\.html$ /bbs/forumdisplay.php?fid=$1&page=$2 last;
    rewrite ^/bbs/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /bbs/viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    rewrite ^/bbs/space-(username|uid)-(.+)\.html$ /bbs/space.php?$1=$2 last;
    rewrite ^/bbs/tag-(.+)\.html$ /bbs/tag.php?name=$1 last;
}

Discuz! X1.5 安装在子目录 /bbs 下:

 location /bbs/ {
    root   /home/www/vpsee.com;
    index  index.php index.html index.htm;
    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]+)\.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 ^([^\.]*)/(
    if (!-e $request_filename) {
        return 404;
    }
}

如果对理解 ^([^\.]*)/(

文章来源:www.vpsee.com

【相关文章】

Nginx常用伪静态规则收集 Discuz等伪静态规则

推荐关键词

24小时热搜

查看更多内容

大家正在看

IXWebHosting空间实现discuz伪静态实战经验

dz论坛伪静态好还是动态好

IIS服务器以及Nginx下 ShopEx4.84伪静态

Discuz X链接伪静态的.htaccess重定向规则

Discuz! X2子目录伪静态的实现方法

解读SEO优化中对伪静态的误区

asp程序实现伪静态的代码

没有ISAPI Rewrite FULL照样玩多站点伪静态

Google解说动态、静态、伪静态网址

IIS For Windows环境下的WP伪静态

浅析伪静态页面的一些弊端

在新浪SAE上安装wordpress并实现伪静态

Nginx常用伪静态规则-WordPress-PHPCMS-ECSHOP-SHOPEX-Discuz 7

Lighttpd下WORDPRESS的URL Rewrite伪静态规则

伪静态与静态HTML对谷歌搜索引擎哪个更好?

关于WordPress中的子目录和伪静态的一些探讨