Nginx使用部分请求标头重定向到其他位置

时间:2019-06-09 20:59:37

标签: nginx nginx-location

我想将某些请求重定向到不同的位置,但是带有部分请求标头,例如: https://example.com/something/value ---> https://example.com/something/index.php?var=value

伪代码:

location ^~ /something/$value {
    return 301 https://$host/something/index.php?var=$value;
}

1 个答案:

答案 0 :(得分:1)

location只需要匹配URI不变的那部分。如果/something/index.php/something/value是相同的前缀,则您不想使用^~修饰符,否则将找不到PHP文件。有关详细信息,请参见this document

使用rewrite捕获URI的“值”部分并将其作为参数附加。

例如:

location /something/ {
    rewrite ^/something/(.*)$ /something/index.php?var=$1 last;
}

如果要进行外部重定向,请使用rewrite...permanent而不是rewrite...last。有关详细信息,请参见this document