我正在使用aspx网站,用户可以访问类似于“www.website.com/referralname”或“www.website.com/otherreferralname”的网址,并将重定向到www.website。 com / genericform.aspx?referral = referralname
我不是该网站的原始设计者,我想尽可能少地添加,所以我希望有一种方法可以通过webconfig执行此操作,而不必添加重定向页面和切换案例每个可能的推荐名称。
我已经探讨了使用
的可能性<customErrors mode="RemoteOnly">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
但AppCode中已有代码以某种方式覆盖或取代我的代码,无论如何它只显示默认的404页面。非常感谢任何建议。
编辑:我被告知.aspx不能与那里的customErrors标签一起使用,因此这可能是问题的一部分。我也希望澄清这个问题。今天我会学到很多东西!
编辑2:所以在做了一些研究之后,我认为能让我受益的搜索词是“路由”。我发现this MSDN page我认为会引导我解决问题。如果这对我有用,我会在稍后发表评论“回答”。
答案 0 :(得分:2)
您可以查找IHttpHandler和IHttpHandlerFactory。我在我的维基上使用它们。我的页面以.wiki结尾但不存在,但被重定向到从数据库加载它们的通用页面。您必须有权访问IIS服务器(或调用您的ISP),以便通过您选择的扩展程序获取不存在的文件,然后通过该服务器进行处理。
还有其他方法可以做同样的事情。
PS要使用我的方法,我必须在我的服务器上拥有完全信任才能使其正常工作。我确信这没有必要,但我无法理解。
编辑:
这些是我保存的书签:
答案 1 :(得分:1)
好的,最终最终工作的是将以下代码添加到web.config文件夹的system.web区域
<urlMappings enabled ="true">
<add url="~/referralname" mappedUrl="~/custom/sign-up.aspx?ref=referralname"/>
</urlMappings>
如此简单,却如此难以捉摸!我希望这有助于其他人!