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

问题描述 投票:1回答:1

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

当前的nginx路由设置为

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

我尝试添加规范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显示在谷歌有机结果中,而开发工具中没有响应标题。

http nginx header canonical-link
1个回答
0
投票

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

location块移动到server块中更高的位置,以便首先遇到它。

如果您尝试匹配单个URI,请使用完全匹配位置,该位置始终具有最高优先级,而不管其在server块中的位置。例如:

location = /folder/another-folder/important-document.pdf { ... }
© www.soinside.com 2019 - 2024. All rights reserved.