我在我的Web应用程序中使用了漂亮的URL,一个示例是“论坛/帖子/1”,它在论坛模块中调用PostController,该postController加载了带有ID = 1的帖子。这是我需要的,但是该帖子也可以从“论坛/邮政/查看/ID/1”访问。这很糟糕,因为搜索爬行者不喜欢从几个URL访问同一页面时,对吗?

我正在使用支持“ UsenterrictParsing”选项的YII框架,该框架说明了即将来临的请求 必须 匹配至少一条“漂亮”路线,否则请求将失败404。但是,这不是一个完美的解决方案,因为我没有每个控制器/操作的漂亮URL。

理想情况下,框架应以301状态代码重定向“论坛/post/tive/id/1”到“论坛/邮政/1”。您是如何解决这个问题的?这不是YII/PHP特定问题,您的框架/工具如何处理?

有帮助吗?

解决方案

确保搜索引擎仅将一页排名一页的最佳方法,如果有多种查看内容的方法是在文档标题中查看内容的方法

<link rel="canonical" href="http://www.mydomain.com/nice-url/" />

这对于基于Windows的系统非常有用,因为IIS对其网页不敏感,但Web标准对案例敏感。

所以

  • www.maydomain.com/newpage.aspx
  • www.maydomain.com/newpage.aspx
  • www.maydomain.com/newpage.aspx

这些都被Google视为不同的页面,然后将您标记为具有重复内容的网站,但使用规范的网站不像上述情况相同的规范元标记,而URL是相同的规范元标记搜索引擎只会使用一个。

其他提示

只要没有人链接到您的非序幕URL,搜索引擎将永远不会知道它们存在。

如果您想消除它们,则可以通过在Web服务器的配置文件中添加别名来绕过您的Web框架; URL将在达到框架之前重定向。

不提供“魔术”路由的Django之类的框架不面对这个问题,唯一存在的路由是您手动定义的路由。在这种情况下,您可以定义返回适当重定向的非启动URL的视图。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top