c# - 使用 web.config 使用查询字符串重定向不存在的页面

标签 c# .net redirect web-config

我正在 aspx 网站上工作,用户可以访问类似于“www.website.com/referralname”或“www.website.com/otherreferralname”的 url,并将被重定向到 www.website。 com/genericform.aspx?referral=referralname

我不是该站点的原始设计者,我希望尽可能少地添加内容,所以我希望有一种方法可以通过 webconfig 来完成此操作,而不必添加重定向页面和切换大小写每个可能的 referralname。

我探索了使用的可能性

<customErrors mode="RemoteOnly">
    <error statusCode="404" redirect="~/404.aspx"/>
</customErrors>

但是 AppCode 中已经有代码以某种方式覆盖或取代了我的代码,无论如何它只显示默认的 404 页面。非常感谢任何建议。

编辑:我被告知 .aspx 不能与那里的 customErrors 标记一起使用,所以这可能是问题的一部分。我也希望能就该问题进行澄清。我今天会学到很多东西!

编辑 2:所以在做了更多研究之后,我认为对我有利的搜索词是“路由”。我找到了 this MSDN page我认为这将引导我找到我的解决方案。如果这对我有用,我稍后会发表带有“答案”的评论。

最佳答案

您可以查找 IHttpHandler 和 IHttpHandlerFactory。我在我的维基上使用它们。我有以 .wiki 结尾且不存在的页面,但被重定向到从数据库加载它们的通用页面。您必须有权访问 IIS 服务器(或调用您的 ISP)才能通过您选择的扩展名获取不存在的文件,这些文件仍会传递给 Asp.Net 软件以供其处理。

还有其他方法可以做同样的事情。

PS 要使用我的方法,我必须在我的服务器上拥有完全信任才能使其正常工作。我确信这不是必需的,但我想不通。

编辑:

这些是我保存的书签:

Serving Dynamic Content with HTTP Handlers

How To Create an ASP.NET HTTP Handler

关于c# - 使用 web.config 使用查询字符串重定向不存在的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115208/

相关文章:

redirect - nginx 重定向规则将所有内容重定向到 https,即使对于其他端口也是如此

Laravel - 重定向到路由 POST

php - 使用 AJAX 生成 Dwolla 访问 token 而不是重定向到他们的网页?

c# - 如何从字符串转到变量名称?

c# - 在字符串列表中查找与输入字符串最接近的匹配项

c# - 在 LINQPad 中托管基于 SwaggerUI 的服务

.net - 确保数字在 .NET 中正确转换

c# - Switch-Case 数据包处理的替代方案

c# - 使用MySqlDataReader时遇到 fatal error

c# - .net 框架是否支持在不同版本 1.1 和 3.5 之间使用策略文件进行程序集重定向?