Nginx 重定向带参数的 URL

Nginx 重定向带参数的 URL

我搜索了很多帖子都没有任何收获,也许你可以帮助我。

我尝试重定向此链接https://www.example.com/page/5/?s=glutenhttps://www.example.com/gluten_specificarticle

我尝试使用地图解决方案,但它不起作用

map $arg_s $mypage {
    gluten /specificlink;
}

链接中有 2 个变量:'5' 表示页面,'?s=gluten' 表示搜索参数。

感谢您的任何帮助

答案1

$request_uri变量包含整个 URI,包括查询字符串。您需要使用if块来测试条件。

对于仅一次重定向,您可以使用:

if ($request_uri = "/page/5/?s=gluten") { 
    return 301 /gluten_specificarticle; 
}

如果有多个重定向,请使用map

map $request_uri $redirect {
    /page/5/?s=gluten    /gluten_specificarticle; 
}
server {
    ...
    if ($redirect) {
        return 301 $redirect;
    }
    ...
}

这个文件了解详情。请参阅这种警告关于 的使用if

相关内容