diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java index e1e27b5f9..e9c4d7bd9 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerHttpServlet.java @@ -281,8 +281,13 @@ public class FreemarkerHttpServlet extends VitroHttpServlet { protected void doRedirect(HttpServletRequest request, HttpServletResponse response, ResponseValues values) throws ServletException, IOException { String redirectUrl = values.getRedirectUrl(); - setResponseStatus(response, values.getStatusCode()); - response.sendRedirect(redirectUrl); + if( values.getStatusCode() == 0 || values.getStatusCode() == response.SC_FOUND ){ + setResponseStatus(response, values.getStatusCode()); + response.sendRedirect(redirectUrl); + }else{ + response.setStatus(values.getStatusCode()); + response.setHeader("Location", redirectUrl); + } } private void setResponseStatus(HttpServletResponse response, int statusCode) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java index 6f911c94f..810900921 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/IndividualController.java @@ -125,7 +125,7 @@ public class IndividualController extends FreemarkerHttpServlet { // If this is an uploaded file, redirect to its "alias URL". String aliasUrl = getAliasUrlForBytestreamIndividual(vreq, individual); if (aliasUrl != null) { - return new RedirectResponseValues(aliasUrl); + return new RedirectResponseValues(aliasUrl, HttpServletResponse.SC_SEE_OTHER); } Map body = new HashMap();