我很想知道在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?使用一个而不是另一个是偶然的吗?
答案 0 :(得分:0)
使用任何一个的速度影响可以忽略不计,你不会注意到差异。话虽这么说,你应该使用正确的工具来完成工作。
进行简单的重定向,您应该使用重定向而不是使用Mod_Rewrite。该示例是Redirect应该处理的事情。当你需要开始做更复杂的事情时,你可以考虑使用Mod_Rewrite。
即使有1000或10,000次重定向,您也不会发现重大差异。但是它会使用更多的RAM。如果那样的话,可能还有几MB。
所以要回答你的问题,它真的不会有真正的影响,但使用正确的工具。
这应该有所帮助。
答案 1 :(得分:0)
正如PanamaJack提到的那样,Apache Docs说:
mod_alias提供重定向和 RedirectMatch 指令,它们提供了 意味着将一个URL重定向到另一个URL。 这种简单的重定向之一 应该使用这些来完成到其他地方的URL或一类URL 指令而不是RewriteRule
所以,我理解为这样:为了更好的速度,使用Redirect / RedirectMatch(mod_alias)而不是RewriteRule(mod_rewrite)。