Asp.net Url重写和查询字符串参数

Asp.net Url重写和查询字符串参数,asp.net,url-rewriting,seo,Asp.net,Url Rewriting,Seo,我正在使用将url路由包含在我的asp.net 2.0应用程序中 我想换衣服 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 或 考虑到搜索引擎优化,这两个网址

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

我想换衣服

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

考虑到搜索引擎优化,这两个网址中的任何一个都是理想的吗


谢谢

为什么不像StackOverflow在本页上做的那样做呢

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


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

为什么不完全按照StackOverflow在该页面上的操作进行呢

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


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

URL重写的另一个考虑因素是创建“可黑客”URL,以便用户可以通过猜测URL来浏览您的站点

http://mysite.com/books/detail/a-tale-of-two-cities
然后可以使用图书的标题查询图书数据表。但是,如果要执行此操作,则需要在运行查询之前确保标题不是SQL注入尝试(使用SQL参数)


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

URL重写的另一个考虑因素是创建“可攻击”的URL,这样用户就可以通过猜测URL来导航您的站点

http://mysite.com/books/detail/a-tale-of-two-cities
然后可以使用图书的标题查询图书数据表。但是,如果要执行此操作,则需要在运行查询之前确保标题不是SQL注入尝试(使用SQL参数)


从SEO的角度来看,这也应该比在URL中有名称-值对更好,我喜欢这个想法。如果我使用这种技术,我甚至不需要查询字符串参数。我更喜欢的是,如果你更改slug,它会重定向到你应该基于id号的位置,就像这个想法一样。如果我使用这种技术,我甚至不需要查询字符串参数。我更喜欢的是,如果你更改slug,它会重定向到你应该基于id号的位置。我不认为可攻击的URL对这个特定的站点有多重要,尽管它们很好。我试图避免使用字符串进行记录查找。Brian的观点是,通过使用字符串查找,您需要小心SQL注入,这是一个很好的方法。是的,这是一个很好的观点。我总是使用存储过程或参数化SQL。我不认为可破解的URL对这个特定的站点有多重要,尽管它们很好。我试图避免使用字符串进行记录查找。Brian的观点是,通过使用字符串查找,您需要小心SQL注入,这是一个很好的方法。是的,这是一个很好的观点。我总是使用存储过程或参数化SQL。您介意我问一下您使用的是什么CMS吗?“detail.aspx?id=”我看起来很熟悉。我没有使用CMS。以上是一个完全假设的例子。我猜detail.aspx是一个流行的页面名称;)你介意我问一下你用的是什么CMS吗?“detail.aspx?id=”我看起来很熟悉。我没有使用CMS。以上是一个完全假设的例子。我猜detail.aspx是一个流行的页面名称;)