重写 nginx 的规则?

Rewrite rule for nginx?

我正在尝试使用 nginx 部署 trac。除了提供静态文件的重写规则外,我几乎所有的东西都在工作。我需要重写这个 url:

http://trac.domain.tldn/chrome/common/feed.png

给这个:

http://trac.domain.tldn/static/htdocs/common/feed.png

我有这段代码,但它不起作用:

    location ~ /(.*?)/chrome/common/ {
            rewrite /(.*?)/chrome/common/(.*) //static/htdocs/common/ break;
            root    /var/www/domain.tldn/static/trac/static/htdocs/common;
    }

你能帮我解决这个问题吗?

您可以使用以下代码完成:

location /chrome/common {
    rewrite ^/chrome/common/(.*) /static/htdocs/common/ permanent;
}

或者只为您的文件路径使用别名:

location /chrome/common {
    alias /var/www/domain.tldn/static/trac/static/htdocs/common;
}