如何避免在Laravel中使用网址参数?

时间:2019-06-11 15:41:13

标签: php laravel url get

我有一个页面以索引视图列出视频。 该视图可通过多个指标过滤,例如“最新视频优先”和“排名最高的视频优先”。用户可以从以下选项之一进行选择。

过滤器信息存储在用户会话中。要控制会话参数,有不同的路由,当用户单击过滤器按钮时会调用这些路由,例如“ domain.com/videos/newest”或“ domain.com/videos/ranking”。

服务器会根据调用哪个路由来更改会话参数。

事实上,SAME页面已呈现,但视频以不同顺序列出。这导致重复的页面标题,元描述和类似的东西。应该避免这种情况。我想要一个路由“ domain.com/videos”,而没有其他过滤器控制参数。

显然有不同的方法:

  1. 跟踪当前解决方案,提供不同的路由,这些路由通向相同的渲染页面,并处理重复的内容。

  2. 使用domain.com/videos?filter=newest之类的GET参数,从SEO角度来看也不是很好。

  3. 使用Cookie将信息存储在每个Requestheader中,这导致我需要Cookie协议消息,并使页面体验变得难看。

  4. ...

是否有解决上述问题的建议?

更新

@Tim Lewis建议(非常感谢您的答复):

如果您不需要URL参数,则可以执行POST请求,以将这些过滤器/搜索/排序值存储在Laravel的会话中,然后在GET请求中引用它们; $ sort = session()-> get(“ sort”);或类似。它们不会显示在URL中,SEO唯一知道的页面就是domain.com/videos

还有更多的人对此进行确认吗?

1 个答案:

答案 0 :(得分:1)

不必担心GET参数,只需在所有各种过滤的路线上将其输出即可为视频页面设置canonical link

Name

这将防止索引相同内容的替代视图。