Redirect 如何重写所有URL';在nginx中没有该查询的情况下,以?p=1结尾的URL

Redirect 如何重写所有URL';在nginx中没有该查询的情况下,以?p=1结尾的URL,redirect,nginx,Redirect,Nginx,我有一个带有分页的网站,它使用“p”查询选择要显示的页面 我的问题是 www.example.com/category.html和 www.example.com/category.html?p=1 都是相同的内容,并且为了搜索引擎优化的目的显示为重复项,我如何将nginx中的所有?p=1查询重定向到它们的无查询对应项 谢谢参数p的值包含在$arg\u p变量中。if语句可用于测试变量的值。if块中可用的操作是有限的(有关详细信息,请参阅),但允许使用简单的return语句 因此,最简单的解决方

我有一个带有分页的网站,它使用“p”查询选择要显示的页面

我的问题是

www.example.com/category.html和

www.example.com/category.html?p=1

都是相同的内容,并且为了搜索引擎优化的目的显示为重复项,我如何将nginx中的所有?p=1查询重定向到它们的无查询对应项


谢谢参数
p
的值包含在
$arg\u p
变量中。
if
语句可用于测试变量的值。
if
块中可用的操作是有限的(有关详细信息,请参阅),但允许使用简单的
return
语句

因此,最简单的解决方案是从任何包含
p=1
的URI中删除查询字符串,如下所示:

server {
    ...
    if ($arg_p = 1) {
        return 301 $uri;
    }
    location / { ... }
}
请注意,
$uri
是标准化的请求uri,并且已经缺少查询字符串