# 带参数跳转(点击)
if ($query_string ~* "i=(\d+)&a=v$") {
set $i $1;
rewrite (?i)^/views.php /arch/index.php?url=CCFunc/views/$i/v? last;
}
# 带参数跳转(搜索)
if ($query_string ~* "^s=([^?]+)$") {
set $i $1;
rewrite (?i)^/ /arch/index.php?url=CCDynamicPage/search/s=$i/? last;
}
# 搜索
rewrite (?i)^/search/([^?]+)/page/(\d+) /arch/index.php?url=CCDynamicPage/search/s=$1/p=$2 last;
# 首页重定向到/page/1.html
rewrite (?i)^/$ /page/1.html last;
# 分类首页
rewrite (?i)^/([a-z-A-Z]+)$ /cate/$1/1.html last;
rewrite (?i)^/([a-z-A-Z]+)/$ /cate/$1/1.html last;
# 分类
# /WWW/page/DDD 或 /WWW/page/DDD/,重定向到/cate/WWW/DDD.html
rewrite (?i)^/([a-z-A-Z]+)/page/(\d+)$ /cate/$1/$2.html last;
rewrite (?i)^/([a-z-A-Z]+)/page/(\d+)/$ /cate/$1/$2.html last;
# 标签首页
rewrite (?i)^/tag/([a-z-A-Z]+)$ /tag/$1/1.html last;
rewrite (?i)^/tag/([a-z-A-Z]+)/$ /tag/$1/1.html last;
# 标签
# /WWW/tag/DDD 或 /WWW/tag/DDD/,重定向到/tag/WWW/DDD.html
rewrite (?i)^/tag/([a-z-A-Z]+)/page/(\d+)$ /tag/$1/$2.html last;
rewrite (?i)^/tag/([a-z-A-Z]+)/page/(\d+)/$ /tag/$1/$2.html last;
# 列表首页
# /page/DDD 或 /page/DDD/,重定向到/page/DDD.html
rewrite (?i)^/page/(\d+)$ /page/$1.html last;
rewrite (?i)^/page/(\d+)/$ /page/$1.html last;
# 列表
# /page/DDD/DDD 或 /page/DDD/DDD/,重定向到/page/DDD/DDD.html
rewrite (?i)^/page/(\d+)/(\d+)$ /page/$1/$2.html last;
rewrite (?i)^/page/(\d+)/(\d+)/$ /page/$1/$2.html last;
# 详细页面首页
# /DDD 或 /DDD/,重定向到/details/DDD/1.html
rewrite (?i)^/(\d+)$ /details/$1/1.html last;
rewrite (?i)^/(\d+)/$ /details/$1/1.html last;
# 详细页面
# /DDD/DDD 或 /DDD/DDD/,重定向到/details/DDD/DDD.html
rewrite (?i)^/(\d+)/(\d+)$ /details/$1/$2.html last;
rewrite (?i)^/(\d+)/(\d+)/$ /details/$1/$2.html last;
# 如果不包含/public/,/arch/XXX/XXX => /arch/index.php?url=XXX/XXX
if ($request_uri !~* /public/) {
rewrite (?i)^/arch/(\w+/\w+) /arch/index.php?url=$1 last;
}
# 如果不是文件或文件夹,/arch/public/XXX => /arch/public/XXX.html
#if (!-e $request_filename){
rewrite (?i)^/arch/public/(\w+) /arch/public/$1.html last;
#}
1、直接在server节点写即可;
2、其中(?i)表示不区分大小写;last表示隐藏重定向后的URL;redirect表示显示重定向后的URL。
小技巧就是先写redirect,如果重定向后的URL正确,再改redirect为last。