当前位置:  开发笔记 > 编程语言 > 正文

你会如何设计一个可破解的网址?

如何解决《你会如何设计一个可破解的网址?》经验,为你挑选了2个好方法。

想象一下,你有一组产品类别组织在一个漂亮的树形层次结构中,你想提供可黑客的网址来浏览这些.你可以这样做

/catalog/categorya/categoryb/categoryc

然后,您可以很容易地确定应该列出产品的类别(请注意,由于您可以使用相同名称但在层次结构中的不同位置的类别,因此需要完整的URL)

现在添加产品信息的好方法是什么呢?举个例子,您想要显示此类别的产品Oblivion

/catalog/games/consoles/playstation/adventure

在网址末尾添加产品很诱人

/catalog/games/consoles/playstation/adventure/oblivion

但是当你这样做的那一刻,你就失去了知道它的类别或被称为遗忘的产品的能力.我个人认为没有被迫添加后缀,如.html

/catalog/games/consoles/playstation/adventure/oblivion.html

将是最好的解决方案并使用某种前缀,例如

/catalog/games/consoles/playstation/adventure/product:oblivion

你也可以添加一些类似的触发器

/catalog/games/consoles/playstation/adventure/PRODUCT/oblivion

不是那么好,你会(尽管它不太可能是一个问题)限制你自己的产品类别

到目前为止,后缀解决方案看起来像是最方便用户的方法,我可以从头脑中想到但我不喜欢使用扩展

你对此有何看法?



1> Kent Fredric..:

深深的道路让我感到烦恼.他们很难分享.


/product/1234/oblivion --> direct page
/product/oblivion --> /product/1234/oblivion if oblivion is a unique product, 
                  --> ~ Diambiguation page if oblivion is not a unqiue product. 

/product/1234/notoblivion -> /product/1234/oblivion

/categories/79/adventure -->  playstation adventure games
/categories/75/games -->  console games page
/categories/76/games -->  playstation games page 
/categories/games --> Disambiguation Page. 

否则,长网址虽然看似可以破解,但需要让所有节点元素正确破解它.

以php.net为例

php.net/str_replace -->  goes to 
  http://nz2.php.net/manual/en/function.str-replace.php

而且这种模式非常容易让人盲目地使用它.

注意:W3C认为.html后缀在功能上毫无意义且冗余,在URL中应避免使用.html后缀.

http://www.w3.org/Provider/Style/URI



2> Chris Lloyd..:

让我们删除你的URL,以便更干(非重复).以下是您的开始:

/catalog/games/consoles/playstation/adventure/oblivion

实际上,该类别adventure是多余的,因为游戏可以属于多种类型.

/catalog/games/consoles/playstation/oblivion

接下来的事情是我也不需要游戏机.将PC机和控制台机器区分为一个小节可能不是一个好主意.它们是所有类型的机器,通过这样做,您只是增加了另一层次的复杂性.

/catalog/games/playstation/oblivion

现在,您正在就您的网站做出一些决定.我建议删除playstation页面上的类别,因为游戏可以跨多个平台以及games类别存在.您的网址应如下所示:

/catalog/oblivion

那么如何获得Playstation所有动作游戏的列表?

/catalog/tags/playstation+adventure

也许

/catalog/tags/adventure/playstation

订单并不重要.您还必须确保它tags是产品的保留名称.

最后,我假设你不能/catalog因冲突而删除root .但是,如果您的站点很小并且没有很多其他部分,那么将所有内容减少到根级别:

/oblivion
/tags/playstation/adventure

哦,如果oblivion不是一个独特的产品,只需构建一个包含它的ID的slug:

/1234-oblivion

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有