问题描述
我设置了以下路线:
/business //look for a business
/business/biz/:id //look at a specific business
我所做的是,如果有人去/business/biz
,它将重定向到/business
。
我的问题是我应该使用什么状态代码?
我不认为这是301
或302
,因为它不是永久性的举动,也不是暂时的,它只是一个页面,不存在一致重定向到特定页面的情况。>
//get /business/biz page
router.get("/biz",(req,res) => {
res.redirect("/business");
});
我在Stack Overflow上查看了不同的问题,但没有找到与我的情况相符的情况。
解决方法
要在/business/biz
上重定向/business
,您应该返回一个308 Permanent Redirect
。
这是维基百科关于状态308的引用:
该请求和所有以后的请求应使用另一个URI重复。 307和308的行为与302和301的行为相似,但但不允许更改HTTP方法。因此,例如,向永久重定向的资源提交表单可能会继续顺利
您还应该检查this answer来说明301
,308
,302
,307
之间的区别,并且写得很好。
建议仅将301
代码用作GET
或HEAD
方法的响应,并将308
永久重定向用于POST
方法代替。
查看完整的文章here