在nginx上返回404错误404

我需要返回410对我的networking服务器的所有404错误,以便谷歌可以放弃旧的search结果,不再存在。我的经营知识,谷歌对待410的不同于404的,并将删除从search返回410的页面结果,尽pipe他们仍然在指数。 之前的开发人员构build了一个混乱的WordPress的,我们用一个自定义的电子商务平台取代它,每天生成自己的站点地图,所以理想的情况下返回到旧的页面将创build一个可持续的,自动search索引为我们的网站,减轻手册的大部分涉及SEO的劳动力。

我试图简单地返回404这样的404,但它试图重新加载nginx的configuration文件时,会引发exception。

error_page 404 return 410; 

它抛出的exception:

 2014/09/13 01:49:28 [emerg] 32636#0: invalid value "return" in /etc/nginx/nginx.conf:129 

实际上,我在这里有什么select? 我不能真正find关于这个主题的nginx。 我猜如果一切都失败了,我可以redirect404s到一个PHP脚本,通过PHP的http_response_code()返回410,但我想单独用nginx解决它,如果可能的话。 任何人都可以在这里提供解决scheme? 谢谢。

更改http状态码的正确语法是使用= response_code 。 这里是文档的片段。

语法:error_page代码… [= [response]] uri;

默认: –

上下文:http,服务器,位置,如果在位置

定义将针对指定的错误显示的URI。 只有在当前级别上没有定义error_page指令的情况下,error_page指令才从上一级inheritance。 一个uri值可以包含variables。

此外,可以使用“= response”语法将响应代码更改为另一个,例如:

error_page 404 = 200 /empty.gif;

在你的情况下,语法是

 error_page 404 =410 /some-error-page;