如何在Nginx中添加规范头和301重定向

时间:2019-04-29 04:11:22

标签: http nginx header canonical-link

我正在尝试在已经返回301的位置上的nginx中添加规范标头。我正在向目标URL添加规范,因为规范链接对用户比在Google中显示的实际URL更重要。检查开发人员工具时看不到规范的响应标头吗?

当前nginx路由设置为

location ~* '^/folder/another-folder/important-document.pdf' {
  return 301 $scheme://$host/docs/destination-url;
}

并且我尝试添加如下规范网址:

location ~* '^/folder/another-folder/important-document.pdf' {
  return 301 $scheme://$host/docs/destination-url;
  add_header Link "<$scheme://$http_host/folder/another-folder/url>; rel=\"canonical\"";
}

第二个示例已投入使用大约2周,我仍然看到.PDF在Google自然搜索结果中显示,并且在开发工具中没有响应标头。

1 个答案:

答案 0 :(得分:0)

与URI匹配的第一个正则表达式位置将处理该请求,因此,如果在该位置上方有一个不明确的位置块,则将阻止您的规则被采用。有关详细信息,请参见this document

location块向上移到server块中,以便首先遇到它。

如果要匹配单个URI,请使用精确匹配位置,无论其在server块中的位置如何,该位置始终具有最高优先级。例如:

location = /folder/another-folder/important-document.pdf { ... }