我制作了一个具有层次结构并具有搜索引擎友好 (SEF) URL 的网站,例如:
/seeds-1/
/seeds-1/fruits-2/
/seeds-1/fruits-2/black-berries-5/
/seeds-1/fruits-2/blue-berries-6/
/seeds-1/fruits-2/strawberries-7/
/seeds-1/vegetables-3/
/seeds-1/vegetables-3/potato-8/
/seeds-1/vegetables-3/onion-9/
/seeds-1/vegetables-3/cabbage-10/
/seeds-1/flowers-4/
/seeds-1/flowers-4/red-rose-11/
/seeds-1/flowers-4/tulips-12/
等等。您会注意到末尾的数字是 ID。现在我已经完成了网站和所有事情,“顾问”介入并告诉我的客户“...... url 不是 100% 搜索引擎友好的,要使它们 100% 搜索引擎友好,必须删除数字...”。我显然无法与“顾问”交谈,因为他们已经完成了他们的工作并且消失了。
如果有人能指出这两种 URL 的优点和缺点,我将不胜感激。我需要一些可靠的论据来说服客户,而且我真的需要知道我为我的网站选择这种 URL 方案是否有误。
编辑----
可能是我太懒了。重写规则如下:
RewriteRule ^[^/]+-([0-9]+)/$ object.php?ObjectID=$1
RewriteRule ^[^/]+-([0-9]+)/[^/]+-([0-9]+)/$ object.php?ObjectID=$2
.
.
.
从查询字符串中提取 ObjectID 相当容易,将其转换为整数并在 SQL 查询中使用它。我认为在查询中使用文本比较 (WHERE Name = '%s') 比使用整数比较 (WHERE ObjectID = %d) 慢,因此我在犹豫。问题更像是以降低编码/性能友好性为代价使 URL 更加人性化是否值得。
最佳答案
同意cherouvim,会扩充
这里要考虑两件事-
人性化是一方面...如果您的用户想要输入 vegetables/onions/vidalia 而不是 vegatables/onions-10,那么它显然对最终用户更有意义。
此外,搜索引擎还可以获取更多详细信息...因此搜索 vidalia onion 可能会为您的网站带来更好的排名。
最后,顾问正在推广可读性这个流行语。是的,从长远来看,它可能总体上更好(并且应该像编写一个漂亮的小 .htaccess 文件一样简单来修复),但您的设置确实没有错。
编辑
老实说,这真的归结为您的客户想要什么。正如其他用户也指出的那样,您如何呈现链接确实没有太大的性能差异...
现在真正重要的是您的客户是否希望展示它。他们关心这类信息是否可供人类阅读吗?如果他们只是打算采纳顾问的建议,那么您不妨实现您的重写规则。
关于url - 包含数字的搜索引擎友好 URL……好还是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2264708/