【问题标题】:Speed implications of using Redirect vs RewriteRule使用 Redirect 与 RewriteRule 的速度影响
【发布时间】:2014-08-03 21:07:19
【问题描述】:

我很想知道在 Apache 上的 .htaccess 规则中,RewriteRules 和 Redirect 之间的速度是否存在差异。

在我看来,RewriteRules 通常可以是复杂的正则表达式,我认为它与简单字符串匹配的重定向相比会产生开销(即使它非常小)(?)

所以,如果我有:

RewriteRule ^mytestpage\.html$ http://www.google.com [R=301, QSA]

Redirect 301 /mytestpage\.html http://www.google.com/

我可能永远不会注意到差异,但如果我有 1000 个唯一重定向怎么办?还是一万?用一个比另一个更冒险吗?

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite redirect


    【解决方案1】:

    正如 PanamaJack 提到的链接,Apache Docs 说:

    mod_alias 提供 RedirectRedirectMatch 指令,它们提供了一个 表示将一个 URL 重定向到另一个 URL。 这种简单的重定向 URL,或一类 URL,到其他地方,应该使用这些来完成 指令 而不是 RewriteRule

    所以,我是这样理解的:为了提高速度,使用 Redirect/RedirectMatch (mod_alias) 而不是 RewriteRule (mod_rewrite)。

    【讨论】:

      【解决方案2】:

      使用其中任何一种对速度的影响都可以忽略不计,您不会注意到差异。话虽如此,您应该使用正确的工具来完成这项工作。

      做一个简单的重定向,你应该使用重定向而不是使用 Mod_Rewrite。该示例是重定向应该处理的事情。当您需要开始做更复杂的事情时,您可以考虑使用 Mod_Rewrite。

      即使有 1000 或 10,000 个重定向,您也不会真正注意到很大的不同。但是,它将使用更多 RAM。如果那样的话,可能有几MB。

      因此,要回答您的问题,它确实不会产生真正的影响,但请使用正确的工具来完成工作。

      这应该会有所帮助。

      When not to use mod_rewrite

      【讨论】:

        猜你喜欢
        • 2013-01-23
        • 2018-07-02
        • 1970-01-01
        • 1970-01-01
        • 2013-01-07
        • 1970-01-01
        • 2015-12-20
        • 2021-06-30
        相关资源
        最近更新 更多