使用以下代码
context.Response.StatusCode = 301;
context.Response.Redirect(newUrl, true);
context.Response.End();
Run Code Online (Sandbox Code Playgroud)
我可以在提琴手中看到它使用302而不是301.我应该在重定向呼叫后设置状态吗?
Kei*_*thS 35
Response.Redirect()将使用重定向的代码覆盖StatusCode属性(302).另外,因为您正在使用带有布尔参数的Response.Redirect()重载,所以如果您想自己调用Response.End(),则应将其设置为False.否则它是多余的,可能会导致错误.
尝试以下(pre-ASP.NET 4.0; Adam Butler的答案涵盖了新的最佳实践):
context.Response.Redirect(newUrl, false);
context.Response.StatusCode = 301;
context.Response.End();
Run Code Online (Sandbox Code Playgroud)