Nginx 直接“fgrep”样式重定向

Nginx 直接“fgrep”样式重定向

我有一堆“重定向规则”,希望 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

相关内容