【问题标题】:Nginx, URL rewrite: Location or $request?Nginx,URL 重写:位置还是 $request?
【发布时间】:2012-04-19 03:30:14
【问题描述】:

我需要一些帮助来理解 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]

【问题讨论】:

    标签: url-rewriting nginx rewrite


    【解决方案1】:

    您可以在 location 块中使用 aliasroot 指令

    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

    【讨论】:

      【解决方案2】:

      怎么样

      此问题与基于标头的 API 版本控制有关

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

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

      这里的“重写”值应该是什么?

      【讨论】:

        猜你喜欢
        • 2014-12-06
        • 2013-12-16
        • 2020-05-26
        • 2016-02-14
        • 2012-04-16
        • 2016-05-30
        • 1970-01-01
        • 1970-01-01
        • 2018-06-21
        相关资源
        最近更新 更多