ASP.Net 301重定向错误

时间:2013-03-15 14:32:20

标签: asp.net

我目前正在尝试创建301重定向,但我遇到了一些奇怪的错误..

这是我正在使用的代码:(文件名为test.aspx)

<html>
<head>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e) {
    Response.Status = "301 Moved Permanently";
    Response.AddHeader("Location","http://www.XXXXX.com/");
}
</script>   
</head>
<body>
</body>
</html>

但是我收到了这个错误:

Runtime Error

Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. 

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".


<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.


<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>

1 个答案:

答案 0 :(得分:0)

您可以使用:

Response.Redirect("http://www.XXXXX.com/");

虽然这不是永久的HTTP 301。

.NET Fx 4.0+你可以:

Response.RedirectPermanent("http://www.XXXXX.com/"); 

如果您想要手动使用或使用早期版本的框架,则必须Response.End事件处理程序中Page_Load。 (如果你没有发送一些标题,那么你发送一个不适用于标题的正文。)

private void Page_Load(object sender, System.EventArgs e) {
    Response.Status = "301 Moved Permanently";
    Response.AddHeader("Location","http://www.XXXXX.com/");
    Response.End();
}