出于 SEO 目的,我被要求配置重定向。使用 30x 状态代码进行重定向没有问题,并且有效:
location ^/home$ {
return 301 /foo/bar/index.html;
};
但似乎 301 重定向不足以抓取页面。所以我尝试了以下方法:
location ^/home$ {
return 200 /foo/bar/index.html;
}
但这只会导致字符串“/foo/bar/index.html”作为响应。是否有可能重定向具有 200 状态代码的请求?
答案1
对于这个答案,可能没有配置 nginx 的解决方案。Http 就是不能那样工作。在我们的例子中,我们在应用程序内部映射了 uri,并避免使用 nginx 重写 uri
答案2
location ^/home$ {
rewrite ^/home$ /foo/bar/index.html last;
return 200;
}
“rewrite”指令用于将请求的 URL 从“/home”更改为“/foo/bar/index.html”。“last”参数告诉 nginx 停止处理当前位置指令集并继续处理重写的 URL。然后,“return”指令用于将状态代码设置为 200。