在同一URL中使用请求QueryString和路径信息

本文关键字:QueryString 请求 路径 信息 URL | 更新日期: 2023-09-27 18:21:10

我正在一个现有的大型网站上工作,该网站的不同部分(代表实体商店)使用ID中的查询字符串。

我希望能够实现用于SEO目的的pathinfo请求,所以我正在研究URLS,比如:

http://www.domain.com/cooking-classes.aspx?ID=5(其中5将是本地商店的ID)

有没有办法让这种类型的URL工作?

http://www.domain.com/cooking-classes.aspx?ID=5/chocolate?我可以在没有querystring的情况下使内容正常工作,但是现有的基础结构需要ID才能运行。我试过了:

http://www.domain.com/cooking-classes.aspx/chocolate?ID=5但是ID返回错误。

使用http://www.domain.com/cooking-classes.aspx/5/chocolate是指页面处理引擎的重写。

我在这儿抓救命稻草吗?没有真正的方法让PathInfo和Querystring能够很好地相互配合?

我想远离任何IIS MOD,因为我们没有访问权限。

在同一URL中使用请求QueryString和路径信息

您的最后一个URL将为搜索引擎产生最佳结果,但您可能需要删除.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/