对于Apache,我们有时会使用410 GONE http状态代码来指示资源已经消失到爬虫等,并且还有人类访问者的html页面。
我们要么使用类似的东西:
var apiEndpoint = new URL("https://www.googleapis.com/drive/v2/files"),
params = {q: "some stuff", otherParams: "lol"}
// assemble GET querystring in a nice way
Object.keys(params).forEach(function(key) {
apiEndpoint.searchParams.append(key, params[key]);
});
// go and fetch! (explicit HTTP header options optional but good practice)
fetch(apiEndpoint , {
method: 'GET',
mode: 'cors',
redirect: 'follow',
headers: new Headers({
'Content-Type': 'application/json'
})
});
.then(function (responseBody) {
return responseBody.json();
})
.then(function (responseObj) {
for(i=0; i<responseObj.items.length; i++) {
asyncDeleteDriveItem(responseObj.items[i].id);
}
});
});
function asyncDeleteDriveItem() {/* ... */}
服务器提供410状态代码,并向浏览器访问者显示'ourmovedpage'地址。
借助Nginx,我尝试了
ErrorDocument 410 ourmovedpage.html
...
Redirect gone /GONECONTENT
但在测试中,Chrome似乎显示了302重定向状态代码,而不是我之后的410。
有没有人为Nginx提出类似的东西发送410但是还为人类访问者返回了一个不错的页面?
答案 0 :(得分:0)
通过指定完整的URL nginx
被迫执行重定向。您应该指定相对于当前服务器的人类可读页面。
location = /gonecontent-address {
error_page 404 =410 /ourmovedpage.html;
}