【问题标题】:port apache rewrite to nginx端口 apache 重写为 nginx
【发布时间】:2012-05-28 21:29:08
【问题描述】:

我让 nginx 充当 apache 的反向代理。

我有一个资产目录,其中包含 nginx 提供的静态文件

location /assets {
  alias   /var/public/assets;
  expires     1h;
}

但是,从该目录提供的一些 jpeg 具有特定格式 即

/assets/test.jpg?p=2&project=wert

我希望这些 url 被 nginx 重写,以便它们被后端服务处理

我有下面的 apache 重写,可以满足我的要求

RewriteEngine On
RewriteCond %{QUERY_STRING} q=[0-9]{1,2}&project=(\w+)$
RewriteRule ^assets/(.*)\.(jpe?g)$ /process/assets/$1.$2 [L]

nginx的等价物是什么,我应该把它放在上面的位置指令还是其他地方?

谢谢

【问题讨论】:

    标签: apache nginx rewrite


    【解决方案1】:
    if ($query_string ~ "q=[0-9]{1,2}&project=(\w+)$"){
        rewrite ^/assets/(.*)\.(jpe?g)$ /process/assets/$1.$2 break;
    }
    

    【讨论】:

    • 会尝试谢谢。这应该驻留在我提到的位置指令中吗?
    • 如果不是,将“break”改为“last”。存在更优雅的解决方案,只需重写,如果这不起作用 - 我会写它。
    • 嗨。我试了一下,nginx 报错:“别名”不能在 URI 被重写的位置“/assets”中使用
    • 我将它移到了位置块之外,它似乎正在工作。将测试更多
    猜你喜欢
    • 2012-01-29
    • 1970-01-01
    • 2019-12-19
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多