我有一堆“重定向规则”,希望 Nginx 能为我执行,如下所示:
/news/?p=12312 ---> /news/some/new/url.html
/news/?p=12fsd312 ---> /news/some/new/url.html
我怎样才能让 Ngnix 将所有访问者重定向/news/?p=12312
到/news/some/new/url.html
?
我努力了
rewrite ^/news/?p=123$ /news/some/new/url.html last;
但这似乎不起作用。
答案1
事实是,Nginx
将之后的所有内容?
视为查询字符串,而不是 URI 的一部分。
我要做的是比较值query_string
以触发重定向。像这样:
server {
root /var/www;
index index.html;
if ($arg_p = 12312) {
rewrite ^ /news/some/new/url.html break;
}
if ($arg_p = 12fsd312) {
rewrite ^ /news/some/new/url.html break;
}
}
请注意,我之所以使用是$arg_p
因为您的参数是。对于像您必须使用的p=123456
参数(希望我说清楚了)。donaldDuck=123456
$arg_donaldDuck
更准确地说:你的参数名称在$arg_X
哪里。X