问题是我希望忽略任何其他请求,例如对.aspx文件,图像,文件夹等的请求,例如:
我想要处理这些内容:
site.com/john => site.com/profile.aspx?nick=john
site.com/mark => site.com/profile.aspx?nick=mark
site.com/fred => /site.com/profile.aspx?nick=fred
我不希望这些被处理:
site.com/page.aspx
site.com/images/logo.jpg
您的建议表示赞赏:)
答案 0 :(得分:1)
答案 1 :(得分:0)
此
Request.Url.ToString()
获取你的网址(如果我发现这个网页是正确的,我不经常使用asp.net)
你可以在这个URL上使用一些正则表达式,也许是某种......
site\.com/([\w])+$
不知道如何用.net读取正则表达式的捕获部分,必须有一个合适的对象。
然后向用户发送重定向,您应该能够使用适当的Redirect-HTTP-Header执行此操作。如果我是对的,那么在Response-Object中有一个类似命名的集合。
请注意,此实现不允许重写
site.com/john/some_other_param
如果您对如何详细实现这一点有疑问,我会尝试进一步研究
问候
答案 2 :(得分:0)
我过去曾使用过UrlRewriter.net来做到这一点。它工作得很好。如果没有映射到url的现有文件(即真正的aspx页面或图像文件),您可以将其配置为仅应用重写规则
当然,如果你使用的是IIS7,那么内置路由就可以了。