Nginx,URL重写:位置还是$ request?

时间:2012-04-19 03:30:15

标签: url-rewriting nginx rewrite

我需要一些帮助来理解 Nginx重写功能

想象一下,真正的文件位于以下地址:

http://www.domain.com/library/content/folder/country/page/index.html

我想重写网址,以获得更好的内容(更具人性化!):

http://www.domain.com/page

1。如何使用 Nginx 进行此操作?

location = /... {
    rewrite ...
}

或者

if ($request ~* "page") {
    rewrite ...
}

2. 我该如何编写此规则?

如果我使用Apache,我会写这样的东西:

RewriteRule ^page /(.*) library/contents/folder/contry/page/$1 [L]

2 个答案:

答案 0 :(得分:1)

您可以在位置块中使用别名 root 说明

location /page/ {
    root /my/absolute/path/library/content/folder/country/;
}

location /page/ {
    alias /my/absolute/path/library/content/folder/country/page/;
}

来源:http://wiki.nginx.org/HttpCoreModule

答案 1 :(得分:0)

怎么样

此问题与基于标题

的API版本控制有关

INPUT网址:http://abcd.com/v1/getshafts?param=q,header = v1.1

输出:abcd.com/v1.1/getshafts /

应该是什么'重写'这里有价值吗?