在同一个URL中使用Request QueryString和Path Info?

时间:2012-01-23 01:24:03

标签: c# asp.net

我正在开发一个现有的大型网站,该网站在网址的不同部分(代表实体店)使用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模组,因为我们没有访问权限。

1 个答案:

答案 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是开源的:

http://urlrewriter.net/