【问题标题】:Url rewriting and querystring parametersUrl 重写和查询字符串参数
【发布时间】:2011-11-16 11:18:46
【问题描述】:

我正在使用 UrlReqritingNet 在我的 asp.net 2.0 应用程序中包含 url 路由。

我想改变

http://mysite.com/book/detail.aspx?id=4

到这里:

http://mysite.com/book/a-tale-of-two-cities

这本书存储在一个数据库中,4是这本书的唯一主键。

但是,使用此 url,我不得不使用书名而不是 id 进行数据库查找。我更喜欢使用唯一 ID。

显而易见的解决方案是:

http://mysite.com/book/4

http://mysite.com/book/a-tale-of-two-cities?id=4

考虑到 SEO,这些网址中的任何一个都是理想的吗?

谢谢

【问题讨论】:

  • 您介意我问您使用的是什么 CMS 吗? “detail.aspx?id=" 看起来很熟悉。
  • 我没有使用 CMS。以上是一个完全假设的例子。我猜 detail.aspx 是一个流行的页面名称 ;)

标签: asp.net url-rewriting seo


【解决方案1】:

为什么不完全按照 StackOverflow 在这个页面上的做法呢?

http://mysite.com/book/4/a-tale-of-two-cities?id=4

将 ID 放在 URL 中的 slug 之前。这样,如果 slug 被切断,您仍然拥有检索该页面所需的一切。

【讨论】:

  • 我喜欢这个主意。如果我使用这种技术,我什至不需要查询字符串参数。
  • 我更喜欢的是,如果您更改 slug,它会根据 id 号重定向到您应该在的位置
【解决方案2】:

URL 重写的另一个考虑是创建“可破解”的 URL,以便用户可以通过猜测 URL 来浏览您的网站。

http://mysite.com/books/detail/a-tale-of-two-cities

然后您可以使用书名查询您的图书数据表。但是,如果您要这样做,则需要在运行查询之前确保标题不是 SQL 注入尝试(使用 sql 参数)。

从 SEO 的角度来看,这也应该比 URL 中的名称-值对更好

【讨论】:

  • 我不认为可破解的 URL 对这个特定的站点来说很重要,尽管它们很好。我试图避免使用字符串进行记录查找。
  • Brian 的观点是,使用字符串查找需要小心 SQL 注入,这是一个很好的方法。
  • 是的,这是一个很好的观点。我总是使用存储过程或参数化 SQL。
猜你喜欢
  • 1970-01-01
  • 2015-04-27
  • 2011-08-02
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
相关资源
最近更新 更多