我正在尝试在已返回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显示在谷歌有机结果中,而开发工具中没有响应标题。
与URI匹配的第一个正则表达式位置将处理请求,因此如果您在此位置上方有一个不明确的位置块,则会阻止您的规则被采用。有关详细信息,请参阅this document。
将location
块移动到server
块中更高的位置,以便首先遇到它。
如果您尝试匹配单个URI,请使用完全匹配位置,该位置始终具有最高优先级,而不管其在server
块中的位置。例如:
location = /folder/another-folder/important-document.pdf { ... }