我正在尝试在已经返回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自然搜索结果中显示,并且在开发工具中没有响应标头。
答案 0 :(得分:0)
与URI匹配的第一个正则表达式位置将处理该请求,因此,如果在该位置上方有一个不明确的位置块,则将阻止您的规则被采用。有关详细信息,请参见this document。
将location
块向上移到server
块中,以便首先遇到它。
如果要匹配单个URI,请使用精确匹配位置,无论其在server
块中的位置如何,该位置始终具有最高优先级。例如:
location = /folder/another-folder/important-document.pdf { ... }