如何将两个nginx重写规则合并为一个?

时间:2011-11-08 00:28:32

标签: regex nginx

nginx重写规则:

rewrite ^/([a-z]+)$ /?type=$1 last;
rewrite ^/([a-z]+)/page/([0-9]+)$ /?type=$1&page=$2 last;

我可以将这两个规则合并为一个吗?

1 个答案:

答案 0 :(得分:1)

没有测试过,但是这样的事情可能有用..

^/([a-z]+)/?(page/([0-9]+)|)/?

修改:这是完整的区块:

location ~ /(blog)/?(page/([0-9]+)|)/? {
  default_type 'text/plain';
  echo "$1";
  echo "$2";
  echo "$3";
}

转到 / blog 会产生

blog

转到 / blog / page / 3 会产生

blog
page/3
3

$ 3 如果已经指定了页码,否则它将为空。