最新消息:

nginx rewrite 的一个坑

bug / nginx / rewrite admin 3浏览
location / {
    rewrite /a /b break;
    set $var asdf;
    add_header asdf $var;
}

会发现 response header 中并没有 asdf 这一项。但如果把 set 的那一句放到 rewrite 上方,改成:

location / {
set $var asdf;
rewrite /a /b break;
add_header asdf $var;
}

asdf 就会出现。

或者去掉 break:

location / {
rewrite /a /b;
set $var asdf;
add_header asdf $var;
}

asdf 也会出现。

初步怀疑是由于 set 是 mod_rewrite 提供的, break 时不仅跳过了剩余的 rewrite ,连 set 也一块跳过了,这就太坑爹了。但在文档中并未见如此的描述,所以也可能是其他原因造成的。

转载请注明:爱开源 » nginx rewrite 的一个坑

转载请注明:爱开源 » nginx rewrite 的一个坑