gpt4 book ai didi

asp.net - 将querystring传递到404页面

转载 作者:行者123 更新时间:2023-12-03 07:55:20 24 4
gpt4 key购买 nike

我在IIS 7中设置了错误处理以转发到404页,但是querystring似乎从未传递过来。

例如,此页面不存在,因此它指向404页面:

www.mysite.com/nonexistingpage.aspx?id=1

在404页面的page_load中,我无法访问id = 1,因为它似乎从未到达404页面。因此,尝试使用以下方法获取它不起作用:
Request.UrlReferrer.PathAndQuery
Request.ServerVariables["HTTP_REFERER"]

在IIS中,我的路径输入为:/404.aspx,并且“类型”设置为:执行URL。如何确保查询字符串将传递到404页面?

编辑:在Fiddler中,重定向为:/404.aspx?aspxerrorpath=/nonexistingpage.aspx,因此这确认它肯定没有被传递。

最佳答案

您使用的是ASP.NET错误页面还是IIS错误页面?从您在Fiddler中谈论重定向的事实来看,我认为您正在使用ASP.NET错误页面,但是ExecuteURL建议您使用IIS错误页面。或者,也许您将两者与ASP.NET混合在一起占据了上风。

最好的选择是对404页面使用IIS错误页面。这使您可以做自己想做的事情:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
</configuration>

现在,当为您不存在的页面调用 /404.aspx时,查询字符串将设置为:
404;http://www.mysite.com/nonexistingpage.aspx?id=1

关于asp.net - 将querystring传递到404页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9949942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com