我正在开发一个现有的大型网站,该网站在网址的不同部分(代表实体店)使用ID中的查询行。
我希望能够为SEO目的实现pathinfo请求,所以我正在看URLs:
http://www.domain.com/cooking-classes.aspx?ID=5(其中5将是本地商店的ID)
有没有办法让这种类型的网址有效?
http://www.domain.com/cooking-classes.aspx?ID=5/chocolate?我可以在没有查询字符串的情况下使内容工作,但现有基础结构需要运行ID。我试过了:
http://www.domain.com/cooking-classes.aspx/chocolate?ID=5但是ID错误地返回。
使用http://www.domain.com/cooking-classes.aspx/5/chocolate表示页面处理引擎的重写。
我在这里抓着稻草吗?没有真正的方法让PathInfo和Querystring能够很好地相互配合?
我想远离任何IIS模组,因为我们没有访问权限。
答案 0 :(得分:1)
您的上一个网址将为搜索引擎带来最佳效果,但您可能希望删除.aspx。您需要编写一个HttpHandler或HttpModule才能完成此任务。它实际上没有看起来那么多,你根本不需要改变你的页面。您的HttpHandler可以在后台重定向保留URL。在MSDN上查看这篇文章:
http://msdn.microsoft.com/en-us/library/ms972974.aspx
如果您不需要任何超级特定的东西,您可以使用现有的HttpModule,就像ScottGu博客上的帖子中提到的那样:
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
他提到UrlRewriter.net是开源的: