【问题标题】:How do i rewrite all URL's ending in ?p=1 to the URL without that query in nginx如何在 nginx 中将所有以 ?p=1 结尾的 URL 重写为没有该查询的 URL
【发布时间】:2016-10-25 22:07:55
【问题描述】:

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

我的问题是

www.example.com/category.html 和

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

内容相同,并且出于 SEO 目的显示为重复项,我如何将 nginx 中的所有 ?p=1 查询重定向到它们的无查询对应项。

谢谢

【问题讨论】:

    标签: redirect nginx


    【解决方案1】:

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

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

    server {
        ...
        if ($arg_p = 1) {
            return 301 $uri;
        }
        location / { ... }
    }
    

    请注意,$uri 是规范化的请求 URI,并且已经缺少查询字符串。

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多