页面未从应用程序错误重定向,

时间:2013-11-25 11:20:25

标签: c# asp.net .net url-rewriting

如果HttpError为404,我正在尝试重定向页面 它在本地主机上工作完美,但在实时网站上却没有。

这是我的代码

void Application_Error(object sender, EventArgs e)
{
    // Code that runs when an unhandled error occurs
    HttpException serverError = Server.GetLastError() as HttpException;

    if (serverError != null)
    {
        int errorCode = serverError.GetHttpCode();

        if (errorCode == 404)
        {
            Server.ClearError();
            if (Request.Url.ToString().Contains("contact.php"))
            {
                Response.Redirect("contact-us.aspx");
            }
        }
    }
}

感谢。请告知如何让它在现场工作,

3 个答案:

答案 0 :(得分:1)

为什么不使用web.config而不是global.asax文件?

<system.webServer>
          <httpErrors>
            <remove statusCode="404" subStatusCode="-1" />                
            <error statusCode="404" path="contact-us.aspx" responseMode="ExecuteURL" />                
          </httpErrors>
       </system.webServer>

答案 1 :(得分:0)

尝试Response.Redirect(“〜/ contact-us.aspx”);

答案 2 :(得分:0)

我想出来了。我必须在web.config中编写一条规则,以便我需要重定向

<system.webServer>
    <rewrite>
      <rules>
        <rule name="contact">
          <match url="^(contact).php$"/>
          <action type="Redirect" redirectType="Permanent" url="https://www.example.com/contact-us.aspx" />
        </rule>
    </rewrite>
</system.webServer>

这完全适用于我必须重定向的所有页面。并且在global.asax中没有添加任何代码