环境:.NET 1.1
我遇到了这种情况。我需要提供一个URL,有人可以将它们重定向到我们的页面。当他们重定向时,他们还需要告诉我们,我需要在页面上显示什么消息。最初我想到了这样的事情。
因此,当我们根据“原因”获取此网址时,我们可以显示不同的消息。
但问题是他们根本无法发送任何查询参数。他们需要15个不同的URL,因为他们无法发送查询参数。仅仅为了显示消息而创建了15个页面对我没有任何意义。
任何聪明的想法,有一个URL并通过某种方式传递'原因'?
编辑:我正在考虑基于答案的选项
尝试HttpRequest.PathInfo
或我想的第二个选项是让httphanlder读取
读取这样的路径 - HttpContext.Request.Path
基于路径行为。当然,我将在web.config中有大约15个这样的条目。
<add verb="*" path="reason1.ashx" type="WebApplication1.Class1, WebApplication1" />
<add verb="*" path="reason2.ashx" type="WebApplication1.Class1, WebApplication1" />
看起来干净吗?
答案 0 :(得分:2)
思考:
路径信息:http://msdn.microsoft.com/en-us/library/system.web.httprequest.pathinfo.aspx
网址为http://example.com/a.aspx/reason100,http://example.com/a.aspx/reason101等
网址重写:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
网址为http://example.com/a/reason/100.aspx,http://example.com/a/reason/100.aspx等。
编辑:这两种方法只涉及一个aspx页面,但是多个URL指向它。
答案 1 :(得分:1)
假设IIS(我在IIS 6上运行它,但我希望它也可以在5上运行),你可以安装IIRF。然后,您可以配置不同的“友好”URL和Apache的mod-rewrite,并将它们作为查询参数发送到单个* x页面。
答案 2 :(得分:0)
他们可以发送POST变量吗?
太糟糕了,因为后面的版本支持允许RESTful URL的路由。
另一种选择是编写自定义HttpModule并拦截传入的请求。