如何将http请求重定向到带有404状态代码的特定URL。我正在使用
Response.sendRedirect("/404userfriendlypage")
请求的URL的响应代码为301,相反,我需要为404。然后重定向到此用户友好的错误页面。
谢谢。
答案 0 :(得分:0)
使用这种语法在您的spring控制器中重定向
return "redirect:/urlNotExist";
以上重定向将把404传递给客户端,因为“ / urlNotExist”路由没有映射。
现在,您可以在客户端的任一客户端代码进行重定向,以重定向到用户友好的错误页面。或者,只需设置一个@ControllerAdvice,即可将服务器端重定向到用户友好的错误页面。
纯Java解决方案。
使用简单的Response.sendRedirect(“ path”);
Response.sendRedirect("/404Genratingpage")
并且在staus为404或其他条件下重定向到自定义错误页面。您需要重写Response.sendRedirect方法。
public class CustomResponseWrapper extends HttpServletResponseWrapper {
@Override
public void sendRedirect(String location) {
//custom logic to redirect to a user friendly error page.
super.sendRedirect(request.getContextPath()+"/404userfriendlypage.jsp");
}
}
对于404或其他任何状态,请尝试在404userfriendlypage.jsp中设置以下响应状态。
<%response.setStatus(404);%>
答案 1 :(得分:0)
我已经通过使用以下代码解决了这个问题。
Response.sendError(HttpServletResponse.SC_NOT_FOUND);
向请求的网址发送404到前端。在应用程序级别,我们有一个配置,其中404代码是否接收到重定向到用户友好页面的重定向。