[文章作者:张宴 本文版本:v1.1 最后修改:2009.12.01 转载请注明原文链接:http://blog.zyan.cc/bo-blog_nginx_rewrite/]

  Bo-Blog是一款采用PHP开发的单用户博客程序,本人的博客也采用的是Bo-Blog,个人觉得bo-blog的排版、易用性要比WordPress好得多,但扩展性不如WordPress。

  很多朋友向我询问过,Bo-Blog的Nginx Rewrite规则如何写。由于Bo-Blog官网只提供了Apache的Rewrite规则,这里,我将自己从 Bo-Blog 的 Apache Rewrite 规则转换而来的 Bo-Blog 2.1.1 的 Nginx Rewrite 重写规则贴在此处,供需要的朋友使用:
引用
   if (!-e $request_filename)
   {
      rewrite ^/post/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /read.php?entryid=$1&page=$2&part=$3 last;
      rewrite ^/page/([0-9]+)/([0-9]+)/?$ /index.php?mode=$1&page=$2 last;
      rewrite ^/starred/([0-9]+)/?([0-9]+)?/?$ /star.php?mode=$1&page=$2 last;
      rewrite ^/category/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=category_$1&mode=$2&page=$3 last;
      rewrite ^/archiver/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=archive&cm=$1&cy=$2&mode=$3&page=$4 last;
      rewrite ^/date/([0-9]+)/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=showday_$1-$2-$3&mode=$4&page=$5 last;
      rewrite ^/user/([0-9]+)/?$ /view.php?go=user_$1 last;
      rewrite ^/tags/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /tag.php?tag=$1&mode=$2&page=$3 last;
      rewrite ^/component/id/([0-9]+)/?$ /page.php?pageid=$1 last;
      rewrite ^/component/([^/]+)/?$ /page.php?pagealias=$1 last;

      #Force redirection for old rules
      rewrite ^/read\.php/([0-9]+)\.htm$ http://$host/post/$1/ permanent;
      rewrite ^/post/([0-9]+)\.htm$ http://$host/post/$1/ permanent;
      rewrite ^/post/([0-9]+)\_([0-9]+)\.htm$ http://$host/post/$1/$2/ permanent;
      rewrite ^/post/([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/post/$1/$2/$3/ permanent;
      rewrite ^/index\_([0-9]+)\_([0-9]+)\.htm$ http://$host/page/$1/$2/ permanent;
      rewrite ^/star\_([0-9]+)\_([0-9]+)\.htm$ http://$host/starred/$1/$2/ permanent;
      rewrite ^/category\_([0-9]+)\.htm$ http://$host/category/$1/ permanent;
      rewrite ^/category\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/category/$1/$2/$3/ permanent;
      rewrite ^/archive\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver/$1/$2/ permanent;
      rewrite ^/archive\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver/$1/$2/$3/$4/ permanent;
      rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date/$1/$2/$3/ permanent;
      rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date/$1/$2/$3/$4/$5/ permanent;

      #Filename alias
      rewrite ^/([a-zA-Z0-9_-]+)/?([0-9]+)?/?([0-9]+)?/?$ /read.php?blogalias=$1&page=$2&part=$3 last;
   }


  PS:2009-12-01修正一处错误,之前文章中的if (!-x更换为if (!-e




技术大类 » Web服务器 | 评论(74) | 引用(0) | 阅读(69541)
Luxesky Email
2009-11-30 14:12
挖,做个沙发
蟠桃 Email Homepage
2009-11-30 14:19
呵呵,不错。
挥舞尘埃 Homepage
2009-11-30 14:59
十分感谢这么快的回复。马上试下
NS基地 Email Homepage
2009-11-30 15:59
不错 老张   俺感觉 boblog 没 WP好
孤叶一舟 Homepage
2009-11-30 16:53
原来老张的博客用的boblog,我一直以为你自己写的呢
挥舞尘埃 Homepage
2009-11-30 17:07
你好,写入nginx.conf后显示:HTTP/1.1 404 请求的页面不存在。
以前和新发布的文章都不能单独打开,但是在首页可以显示。请教下。
旺旺
2009-11-30 17:48
楼上的朋友 要在BOBLOG后台URL优化中打开高级URL Rewrite才可以的
ff
2009-12-1 09:14
我是虚拟机 怎么用啊?
张宴 回复于 2009-12-1 12:57
虚拟主机还是VPS虚拟机?
挥舞尘埃 Homepage
2009-12-1 13:38
成功了,谢谢!加了你的链接。
偶菇
2009-12-1 19:51
张宴  你好

nginx  rewrite 的问题请教你下


------------------------------------------------------------------------------
某  shtml文件内容:

<!--#include virtual="/123/456/789/abcd.html"-->

实际上  该文件存放在  /456/789/abcd.html

而 /123/456/789/abcd.html 是没有这个文件的    ,也就是说根本没有 /123/  这个目录


1:  有什么办法  让  该  配置<!--#include virtual="/123/456/789/abcd.html"-->

  可以直接生效  

  改 ssi 配置文件 为  <!--#include virtual="/456/789/abcd.html"-->
的 不用讨论

如果有 烦请贴出对应的 配置(nginx  apache )




--------------------------------------------------------------
如果第一个问题解决了 下面的问题不用看
--------------------------------------------------------------

2:    ssi 文件解析 <!--#include virtual="/123/456/789/abcd.html"-->

的时候  rewrite 的规则对他生效吗?


apache    nginx
3:  rewrite  对  ssi 的
<!--#include virtual="/123/456/789/abcd.html"-->

生效吗?

apache  
nginx  两类说明


4
路过 Homepage
2009-12-1 23:47
wordpress,joomla都用过,还是感觉bo-blog好用
我拿bo-blog当cms用
我用bo-blog做的小说网站
http://book.shafa.in
哈哈,还行吧
wwek Homepage
2009-12-1 23:47
感谢提供··········
6curl Homepage
2009-12-2 17:43
我就是采用的bo-blog 感觉不错,挺好使用的
babam
2009-12-4 17:25
请问 nginx是否支持除了php的其他语言 如果我直接使用c语言编写cgi 是否能用?
最美别墅 Homepage
2009-12-5 23:13
rewrite是很重要的功能,用得好事半功倍。特别是SE当道的今天。
hujunhan Email Homepage
2009-12-7 13:16
已使用成功,特来感谢张老师!zan
joomlapvbbs
2009-12-11 15:53
请问老大能否提供joomla的nginx下rewrite规则??
websohu
2009-12-17 19:25
感谢张老师我正要为站长家族开个博客功能
月影鹏鹏 Homepage
2009-12-24 09:50
感谢张老师我现在的网站就是用的nginx
鱼子 Email Homepage
2010-1-21 22:25
我是个菜鸟,在自己的服务器上安装了BO-blog博客,请问张老师,这个规则怎么用?
分页: 1/4 第一页 1 2 3 4 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]