使用漂亮网址时删除URL重复项

我在我的网络应用程序中使用漂亮的URL,一个例子是'forum / post / 1',它在Forum模块中调用PostController,它加载id = 1的帖子。这是我需要的,但该帖子也可以从'forum / post / view / id / 1'访问。这很糟糕,因为搜索抓取工具不喜欢从多个网址访问同一页面时,对吧? 我正在使用支持'useStrictParsing'选项的Yii框架,该选项告诉传入的请求必须至少匹配一条“漂亮”路由,否则请求会因404而失败。但是它不是一个完美的解决方案,因为我没有漂亮的URL每个控制器/动作。 理想情况下,框架应使用301状态代码将“forum / post / view / id / 1”重定向到“forum / post / 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 这些都被谷歌看作不同的页面,然后你被标记为有一个网站有重复的内容,但不是这样的规范,因为上面的案例中的每个页面将具有相同的规范元标记,并且该网址是只有一个将被搜索引擎使用。     
如果没有人链接到您的非漂亮网址,搜索引擎将永远不会知道它们存在。 如果您确实想要消除它们,可以通过在Web服务器的配置文件中添加别名来绕过Web框架; url将在到达框架之前被重定向。 像Django这样不提供“魔术”路由的框架不会遇到这个问题,唯一存在的路由是你手动定义的路径。在这种情况下,您可以为非漂亮的URL定义一个返回适当重定向的视图。     

要回复问题请先登录注册