【发布时间】:2016-01-18 19:11:50
【问题描述】:
我有大量需要重定向的 URL(超过 600 个),它们都是唯一的。它们都是命名的 URL(即 example.com/this-shoe-name 和 example.com/that-blue-product),所以我不能使用 like this 来半动态地做到这一点,而且它们也没有'不重定向到任何类似的东西(即 www.example.com/this-shoe-name 重定向到 newexample.com/catalog/shoes 与 newexample.com/this-shoe-name)。
我想我可以编写 600 条重定向规则(尽管我宁愿避免使用它),但在我看来这会使 routes.rb 文件相当笨拙。
在 routes.rb 中少写了 600 条规则,是否有最佳实践方法来做到这一点?在 routes.rb 中有 600 条规则会让我的应用程序变慢/破坏吗?
【问题讨论】:
-
您能否提供更明确的重定向以及为什么需要发生这种情况的合理解释?我很难理解为什么您需要这种广泛的重定向,以及为什么 RESTful 实例会改为重定向到索引页面 "www.example.com/this-shoe-name 重定向到 newexample.com/catalog/shoes "
-
@engineersmnky 简短的回答是我正在精简客户的遗留系统,他们的命名约定非常糟糕。我正在做什么重做命名约定,但仍然重定向可能访问旧 URL 的用户(极不可能,但我要做什么,告诉他们不?也许我应该......)。因此,如果有人访问 www.example.com/this-shoe-name,我仍然可以让他们进入目录。更不用说特定鞋款停产了,我宁愿让人们远离厄运的 404 页。如果可能的话。
-
完成后“example.com”会留下什么吗?如果不是,那么为什么不一起将“example.com”重定向到“newexample.com”或者只是更改DNS。那么你可以在“newexample.com”的底部找到一条全部路线吗?只是一个想法,因为您提出的建议将非常繁琐,更不用说容易出错了。
-
@engineersmnky 是的,这听起来很正确——这个项目的名称是乏味且容易出错。主要是为了安抚这里的客户,这是我什至考虑这个的唯一原因....也就是说,归根结底,这是一个 SEO 问题。他们希望他们的旧链接将他们以前的 SEO 影响力带到新链接。这意味着(我相信)捕获所有重定向将消除设置重定向的大部分要点。
标签: ruby-on-rails ruby redirect routes