由于相对路径问题,自定义404页面无法回发

时间:2009-05-05 17:35:35

标签: postback http-status-code-404 relative-path

我的网站目前实现了我们在IIS中映射的自定义404页面。因此,当用户执行类似www.mysite.com/foo/bar/doesnotexist的操作时,它将执行404.aspx URL。这很好用,但在检查返回的HTML时,表单帖子URL是相对的:

<form method="post" action="404.aspx?404%3bhttps%3a%2f%2ftestserver%3a443%2ffoo%2fbar%2fdoesnotexist" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">

如果仔细观察,操作URL会发布到404.aspx,但它是相对路径,所以如果我们进行回发www.mysite.com/foo/bar/doesnotexist/404.aspx则会尝试执行。如何让我执行的404页面正确回发? (www.mysite.com/404.aspx)

感谢。

2 个答案:

答案 0 :(得分:1)

Victor,

您的问题是重复的,所以我想您可能会找到答案here

因为你是新来的希望亲近的纳粹会让你有些松懈。基本上,当你写一个问题时,应该有一个类似问题的列表,在你的问题下弹出。如果您看到的问题看起来可能会自行回答,请在发布之前点击链接并查看。您的问题中有9次可能已被回答。

祝你找到答案好运,我认为该链接应该有很多好的信息。

答案 1 :(得分:0)

如果您正在使用axjx并将一个页面拉到另一个页面并且页面位于不同的目录中,这也会发生这种情况,简单的方法就是从网站的根目录重写页面加载时的表单操作对象。

e.g。

        //Rewirte forms post action. 
        form1.Action = "/{dir}/{currentpage}.aspx?" + Request.QueryString;