2010-07-10 78 views
0

我们的系统推荐最好的URL风格

我们的搜索模块可以像

  • 搜索关键字
  • 检查过滤器
  • 主题过滤
  • 日期范围过滤器
  • 许多参数球场名称过滤器 ... ... 等

,并有像

  • 页码
  • 结果数分页和排序参数页
  • 排序字段
  • 排序顺序

我们曾经有过这样的网址: -

www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/ 
www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/<Page number>,<Number of results in a page>,<sort field>,<sort order> 

.... ... ...

而且我们有每一个变化htaccess的一个重写规则。

当前问题

由于多个URL导致代码维护问题的麻烦,我现在诉诸PHP函数来完成任务,而不是htaccess的,类似像的Zend框架的URL库的东西,Codeignitor。

我的问题

我只是想一些建议其URL格式的以下约定的是更好地跟随在考虑到所有的搜索过滤器/ parmas不会每次需要。因此,下列哪2条约定的是更好地遵循: -

  1. 拥有所有存在于所有的网址的URL参数,不管是否需要,他们还是不一样: -

    www.projectname /module/search/hello//110/...all其他参数存在...

    这里我们不需要提及哪个参数是搜索关键字以及哪一个是主题过滤器。一个简单的URL解析器函数总是假定来自www.projectname/module /的第二个参数为搜索关键字(在这种情况下为hello),其他params也是如此。在此示例中,考试过滤器不适用,因此它保留为空白,并且不会破坏URL,但是很好。如果有许多空白PARAMS那么就会出现很多背靠背斜线

  2. 允许自由通过网址参数的任何像这样的顺序: -

    www.projectname /模块/搜索/ SEARCH_KEYWORD /你好/ subject_filter /110/...other需要参数仅存在... www.projectname/module/search/subject_filter/110/search_keyword/hello/...其他所需参数仅存在...

    这两个URL意思是相同的 在这个约定中,URL解析器函数解析每个名称 - 值对,并将名称“search_keyword”旁边的值作为搜索关键字并且类似y代表其他人(在这个例子中,name = search_keyword,value = hello)。该函数将解析每个名称值对,所以search_keyword这个词作为其他对的值出现,不会产生干扰。

请考虑以下因素,同时提示: - - SEO友好 - 简化维护(考虑新的过滤器可能会在将来添加)

请给于提高SEO友好的一些技巧。我对

感谢

回答

0

我自己选择了最好的解决方案。我觉得第二个约定,即Allowing freedom to pass URL params in any order更好,只是因为如果在某些情况下不能传递一个或多个参数,第一个约定可能导致背对背斜线。阅读更多关于为什么我们应该避免不必要的背靠背斜线检查Why we don’t use such URL formats?

0

在Zend Framework中的小知识,Request对象允许以任何顺序数据传递,并最终使用路由器或URL视图助手来创建方式页面的URL你想的那一刻。

这是我所知道的最好的模式。根本没有.htaccess规则。