最近在检查本站的收录情况时,发现百度收录了很多带问号参数的首页 url,类似下面这种:
https://www.codesou.cn/?action=novel&id=1234
https://www.codesou.cn/?action=news&id=4321
实际上这些链接无任何意义、都是首页。但是这样会造成权重分散,对 seo 有负面影响,因此决定进行 url 重写。
按照以往的经验,写出了下面的 rewrite 规则:
rewrite ^/?action=(w+)&id=(d+)$ https://www.codesou.cn permanent;
再次访问发现重写规则并未生效,查了一下 nginx 文档发现,在 nginx 中 url 中如果包含问号,那么从问号后开始自动一刀切识别成$query_string
,不会对这部分再进行正则匹配了,因此导致上面的重写规则无效,那么我们判断一下$query_string
就可以了。
location /
{
if ( $query_string ~ "action=novel&id=(d+)$" ) {
rewrite ^/ https://www.codesou.cn/? permanent;
}
}
再次访问重写规则正确运行,开头示例中的 url 会自动 301 跳转到首页。需要注意的是在网站后面多加了一个“?
”号,要不然会导致 too many 重定向错误。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Nginx 带问号参数的 url 重写教程
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Nginx 带问号参数的 url 重写教程