【问题标题】:Is it better to use routes or mod_rewrite to forward old URLs?使用路由或 mod_rewrite 转发旧 URL 更好吗?
【发布时间】:2009-12-09 21:00:21
【问题描述】:

我最近在我的 Rails 应用程序中更改了一些 URL,我很好奇我是使用路由 + 控制器 + redirect_to 来转发旧 URL 更好,还是只使用 .htaccess 和 Apache 的 mod_rewrite?

我正在使用 Apache + Passenger,因此 htaccess 文件可以工作,但我很好奇这种事情是否有标准。

FWIW,网址已从以下位置更改:http://example.com/user/joeschmoe

对此:http://example.com/joeschmoe

【问题讨论】:

    标签: ruby-on-rails .htaccess mod-rewrite routes


    【解决方案1】:

    使用mod_rewrite 无疑会提供最佳性能,因为请求甚至不会触及 Rails。但是,如果您发现 mod_rewrite 开始工作有点痛苦(就像我一样)和维护负担,还有第三种方法。

    Refraction 是 Rack 中间件,旨在替代 mod_rewrite。它让您可以使用良好的可读 Ruby 代码编写重写规则,并且仍然比使用 Rails 本身完成任务要快。

    【讨论】:

      【解决方案2】:

      我个人会使用 mod_rewrite 执行重写,因为它应该比加载 rails 并在那里执行重定向更快。

      如果您真的关心性能(并且您管理自己的网络服务器),您可以将重写规则(以及您的 .htaccess 中的任何其他内容)构建到 httpd.conf 文件中并禁用覆盖(禁用您的 . htaccess 文件)。这将使您在处理所有请求时的性能略有提升。

      【讨论】:

        猜你喜欢
        • 2015-12-31
        • 2011-03-17
        • 1970-01-01
        • 2013-09-17
        • 2012-02-04
        • 2012-09-25
        • 2013-03-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多