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

===============>>#1 票数:37 已采纳

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

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

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

===============>>#2 票数:7

为了回应Ryan上面所说的内容,与配置文件中的规则相比, .htaccess规则确实会损害繁忙站点上的加载时间。 我们最初尝试过这个(约6000万页/月),但直到我们的服务器开始吸烟才持续很长时间:)

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

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

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

===============>>#3 票数:3

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

但要小心,我正在使用“跳过”标志的项目很多,并且它使维护变得痛苦,因为它取决于文件中写入内容的顺序。

  ask by gregh translate from so

未解决问题?本站智能推荐: