我知道mod-rewrite实现了很多积极的事情.但有没有负面的?显然,如果你的规则写得不好,你就会遇到问题.但是如果你有一个高容量网站并且你不断使用mod-rewrite,它会对性能产生重大影响呢?我在Google上快速搜索了一些基准测试,并没有找到太多.
我已经在每月获得数百万次/点击数的网站上使用了mod_rewrite而没有任何重大的性能问题.您必须知道根据您的规则首先应用哪些重写.
使用mod_rewrite很可能比使用当前语言解析URL更快.
如果你真的担心性能,不要使用.htaccess
文件,这些都很慢.将所有重写规则放在Apache配置中,该配置仅在启动时读取一次..htaccess
每个请求都会重新解析文件,以及父文件夹中的每个 .htaccess
文件.
为了回应Ryan上面所说的内容,.htaccess
与在配置文件中包含规则相比,a中的规则确实会损害繁忙站点上的加载时间.我们最初尝试过这个(约6000万页/月),但直到我们的服务器开始吸烟才持续很长时间:)
在配置中使用规则的明显缺点是,每当修改规则时都必须重新加载配置.
最后一个标志("L")对于加快规则的执行非常有用,一旦您更频繁访问的规则位于顶部并且首先进行评估.如果你有一套很长的规则,它可以使维护变得更加棘手 - 我在一天早上浪费了几个非常令人沮丧的时间,因为我在我的规则列表中间进行编辑并且有一个在顶部被捕获超过意!
我们也很难找到相关的基准测试,并最终制定了我们自己的内部测试套件.一旦我们将规则整理出来,正确排序并进入我们的Apache conf,我们就没有发现太多负面的性能影响.