我想将某些请求重定向到不同的位置,但是带有部分请求标头,例如: 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;
}
答案 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。