我很好奇是否过时使用id的查询字符串。我们在Net 2.0上运行webapp。当我们显示某事物的细节(可以是产品)时,我们使用这样的查询字符串:http://www.somesite.com/Shop/Product/Detail.aspx?ProductId=100
我们使用查询字符串是因为用户可以在某处保存链接并在以后随时返回。我想我们会尽快或稍后使用网址重写,但同时我想知道您的意见。谢谢。欢呼,X。
答案 0 :(得分:5)
常见的策略是在URL中使用项目ID,并使用一些描述项目的关键字。从用户的角度来看,这很好,因为如果他们将URL保存在某个地方,他们可以很容易地看到URL所引用的内容。更重要的是,它从SEO(搜索引擎优化)的角度来看是有用的,因为搜索引擎将会 - 如果它包含某人正在搜索的关键字,则对给定的URL的评分更高。
您可以在这个网站上看到这种方法,其中“问题”之后的ID用于数据库查询,文本纯粹是为了用户和搜索引擎的利益。
您是否使用简单的查询字符串,或者使ID看起来像文件夹路径的一部分的更高级方法取决于您。这在很大程度上取决于个人品味。
答案 1 :(得分:4)
是的,这是老式的!
但是,如果您正在考虑将其更改为其他人建议的RESTful实现,那么您应该继续通过实现HTTP 301重定向从查询字符串URL转发到新的RESTful来支持旧URL和查询字符串地址网址。这将确保任何用户旧链接和书签将继续工作,同时告诉搜索引擎机器人网址已更改。
由于你的帖子被标记为ASP.Net,所以在这里使用新的ASP.Net路由机制可以很好地记录如何支持这两者:http://msdn.microsoft.com/en-us/magazine/dd347546.aspx
答案 2 :(得分:3)
使用查询字符串根本不会过时,只需在正确的位置使用它。但是,永远不要在查询字符串中放置任何可能存在安全问题的内容,并记住您从查询字符串中读取的任何内容都可能已被修改,因此您应该验证检查中的所有输入。
答案 3 :(得分:2)
查询字符串参数没有错。易于创建和理解。许多网站都在使用像www.somesite.com / Shop / Product / white_sox_t_shirt这样的花哨网址,这种网址非常酷且用户友好,但对于我们这些糟糕的开发者来说更多的工作。
答案 4 :(得分:1)
它并不过时,但另一种替代方案是更加RESTful的方法:
yourwebsite.com/products/100/usb-coffee-maker
原因是a)搜索引擎通常会忽略任何带有QueryString的URL(因此product.aspx?id = 100页面可能永远不会被索引)和b)在URL中具有纯粹用于显示目的的名称可能有助于SEO同样。
答案 5 :(得分:0)
永久性链接最适合搜索引擎优化,如果您的产品移动到另一个数据库,并且产品的ID需要更改,该怎么办? 我认为不会更改产品名称的可能性或制造商。 例如Apple / Iphone不会改变:)对我来说似乎是一个很好的永久链接