我正在开发一个Web应用程序,其中我有以下类型的搜索功能;
现在,我的问题是我必须向用户提供上面列出的搜索,但是我无法决定我将使用一个页面(result.aspx)来显示所有搜索记录,而我将使用查询字符串来确定用户正在使用的搜索以及我必须向用户显示的数据。比如,让我说我正在寻找城市,德里和标记德里酒店,那么两者的网址将是:
适用于城市: www.example.com/result.aspx?search_type=city&city_name=delhi
对于代码: www.example.com/result.aspx?search_type=tag&tag_name=delhi-hotels
对于普通搜索: www.example.com/result.aspx?search_type=normal&q=delhi+hotels+and+bar&filter=hotlsOnly
现在,我觉得上面使用单个页面进行所有搜索的想法很混乱。所以我想到了一些更清晰的想法,它正在为所有类型的搜索使用单独的页面
适用于城市: www.example.com/city.aspx?name=delhi
标签: www.example.com/tag.aspx?name=delhi-hotels
普通搜索: www.example.com/result.aspx?q=delhi+hotels+and+bar&filter=hotlsOnly
最新消息: www.example.com/recent.aspx
热门: www.example.com/popular.aspx
我的新想法更清晰,它特别向用户说明了哪个页面用于什么,它还让他知道他现在在哪里,他现在看到的是什么记录。但是新想法有一个问题,如果我必须在搜索结果显示中更改任何内容,那么我必须逐个对所有页面进行更改,我认为这个问题的解决方案也是如此,即在转发器下使用用户控制控制,我会将所有值逐个传递给用户控件,以便为每条记录呈现HTML。
新想法一切都很好,但是我仍然无法决定我必须去做哪个,有人能告诉我你对这个问题的看法。
我想实现一个易于维护的想法,SEO友好(给我的网站排名很好),用户友好(易于使用和了解用户)
感谢。
答案 0 :(得分:2)
在SEO方面提到一件事:
由于许多“结果”页面将链接到相同的内容,因此显示*为这些页面提供不同的URL有几个优点:
因此,对于第1点,作为一个例子,您会注意到SO有许多方法可以找到问题,包括:
如果您查看robots.txt上的SO,您会看到蜘蛛不允许访问(除其他外):
Disallow: /tags
Disallow: /unanswered
Disallow: /search
Disallow: /feeds
Disallow: /questions/tagged
所以搜索引擎应该只找到一个到内容的路径而不是三个或四个。
让它们全部通过同一页面不允许您像这样过滤。理想情况下,您希望搜索引擎将城市和标签列表编入索引,但您只需要将其编入索引实际详细信息一次 - 例如从A到Z列表。
对于第2点,在分析您的网站流量时,如果网址有意义,将会更容易看到人们如何使用您的网站,并且结果不会隐藏在表单标题中 - 许多不错的统计数据包允许您要报告查询字符串值,或者如果您有“好”的网址,这就更容易了。如果您对此感兴趣,那么拥有此类信息也可以使销售广告更容易。
最后,正如我在其他回复的评论中所提到的,用户可能希望为特定搜索添加书签 - 将查询以某种方式烘焙到URL中(查询字符串或重写的URL)是允许这样做的simiplist方式
*我说“出现”是因为正如其他人所指出的那样,URL重写可以实现这一点而不会在服务器上实际拥有不同的页面。
答案 1 :(得分:1)
为了正确回答您的问题,需要解决一些问题:
在处理数据之前,您不一定需要重定向到“结果”页面。包含提交搜索界面的页面或控件可以处理提交的搜索参数(和搜索类型),并启动对提供搜索结果的数据库或中间Web服务的调用。然后,您可以使用单个“结果”页面显示检索到的数据。
如果您必须通过查询字符串将提交的搜索参数传递给结果页面,那么使用单个结果页面可以更好地解析这些参数并有条件地显示结果。
大多数用户不依赖浏览器地址栏中的url / querystring信息来识别他们在网站中的当前位置。你应该有一些更直观的指示(例如面包屑控制或标题标签)来指示当前位置。此外,正如您所提到的,可维护性问题在这里非常重要。
我绝对不会推荐第二种选择(为每种搜索使用单独的结果页面)。如果您担心SEO,请使用URL重写来构建URL“slugs”以创建更直观的路径。
答案 2 :(得分:0)
我会坚持使用原始的result.aspx结果页面。从用户的角度来看,我的理由是实际的URL本身传达的信息很少。您最好在页面上创建视觉提示,其中包含“使用标签Z在类别Y中搜索X”之类的内容。
至于编码和维护,因为除了类别之外一切都很相似,所以将它保存在一个紧凑的小包装中是明智的。如你提出的第二个想法那样打破它只会使一些不需要复杂的事情复杂化。
答案 3 :(得分:0)
抛弃查询字符串并使用URL重写来处理您的“部分”..从书签/用户可读性的角度来看,更好的搜索引擎优化和更清晰。
城市:www.example.com/city/delhi /
标记:www.example.com/tag/delhi-hotels /
近期:www.example.com/recent /
热门:www.example.com/popular /
定期搜索可以访问www.example.com/search.aspx或其他内容。