使用Redirect vs RewriteRule的速度影响

时间:2014-06-13 10:20:17

标签: regex apache .htaccess mod-rewrite redirect

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

在我看来,RewriteRules通常可以是复杂的正则表达式,我认为这些表达式与Redirect相比具有开销(即使它非常小),这将是简单的字符串匹配(?)

所以,如果我有:

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

VS

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

我可能永远不会注意到差异,但如果我有1000个独特的重定向怎么办?还是10,000?使用一个而不是另一个是偶然的吗?

2 个答案:

答案 0 :(得分:0)

使用任何一个的速度影响可以忽略不计,你不会注意到差异。话虽这么说,你应该使用正确的工具来完成工作。

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

即使有1000或10,000次重定向,您也不会发现重大差异。但是它会使用更多的RAM。如果那样的话,可能还有几MB。

所以要回答你的问题,它真的不会有真正的影响,但使用正确的工具。

这应该有所帮助。

When not to use mod_rewrite

答案 1 :(得分:0)

正如PanamaJack提到的那样,Apache Docs说:

  

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

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