我知道 mod-rewrite 取得了很多积极的成果。但有负面的吗?显然,如果你的规则写得不好,你就会遇到问题。但是,如果您有一个大容量站点并且不断使用 mod-rewrite,这会对性能产生重大影响吗?我在谷歌上快速搜索了一些基准测试,但没有找到太多。

有帮助吗?

解决方案

我在每月点击数百万次的网站上使用了 mod_rewrite,没有任何重大的性能问题。您必须知道根据您的规则首先应用哪些重写。

使用 mod_rewrite 很可能比用当前语言解析 URL 更快。

如果您真的担心性能,请不要使用 .htaccess 文件,这些速度很慢。将所有重写规则放入 Apache 配置中,该配置仅在启动时读取一次。 .htaccess 每个请求都会重新解析文件,以及 每一个 .htaccess 父文件夹中的文件。

其他提示

为了呼应 Ryan 上面所说的,规则 .htaccess 与在配置文件中包含规则相比,在繁忙的站点上确实会缩短加载时间。我们最初尝试过这个(约 6000 万页/月),但没持续多久,直到我们的服务器开始冒烟:)

在配置中包含规则的明显缺点是,每当修改规则时都必须重新加载配置。

一旦您更频繁访问的规则位于顶部并首先进行评估,最后一个标志(“L”)对于加快规则的执行非常有用。如果你有一套很长的规则,它会让维护变得更加棘手 - 一天早上,我浪费了几个非常令人沮丧的时间,因为我正在编辑规则列表的中途,并且顶部有一个陷阱超过了故意的!

我们也很难找到相关的基准,最终制定了我们自己的内部测试套件。一旦我们整理好规则、正确排序并放入 Apache conf 中,我们就没有发现太多负面的性能影响。

如果您担心 apache 的性能,如果您有很多重写规则,则需要考虑的一件事是使用“skip”标志。这是一种跳过规则匹配的方法。因此,可以节省用于匹配的任何开销。

但要小心,我所在的项目经常使用“skip”标志,这使维护变得很痛苦,因为它取决于文件中写入内容的顺序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top