使用Mod-Rewrite时是否有负面影响?
我知道mod-rewrite有很多积极的作用。但是有否定的东西吗?显然,如果规则写得不好,就会遇到问题。但是,如果我们拥有大量站点并且经常使用mod-rewrite,它将对性能产生重大影响吗?我在Google上快速搜索了一些基准测试,但没有发现太多。
解决方案
回答
我曾在每月获得数百万次/点击的网站上使用过mod_rewrite,而没有任何重大的性能问题。我们必须知道根据规则首先应用哪种重写。
使用mod_rewrite最有可能比使用我们当前的语言解析URL更快。
如果我们真的担心性能,请不要使用.htaccess文件,因为它们很慢。将所有重写规则放在Apache配置中,该配置在启动时仅读取一次。每次请求都会重新解析.htaccess文件以及父文件夹中的每个.htaccess文件。
回答
如果我们担心apache的性能,如果我们有很多重写规则,则要考虑的一件事是使用" skip"标志。这是一种跳过规则匹配的方法。因此,将节省在匹配上花费的所有开销。
但是请注意,我在一个项目中大量使用了"跳过"标志,并且使维护工作变得很痛苦,因为它取决于文件中写入内容的顺序。
回答
与Ryan所说的相呼应,与在配置文件中保存规则相比,.htaccess
中的规则确实会损害我们在繁忙站点上的加载时间。我们最初尝试了这种方法(每月约有6000万页),但是直到服务器开始冒烟才持续了很长时间:)
将规则包含在配置中的明显缺点是,只要我们修改规则,就必须重新加载配置。
一旦我们更常访问的规则排在最前面并首先进行评估,最后一个标志(" L")对于加快规则的执行很有用。如果我们有很长的规则集,这可能会使维护变得更加棘手,尽管我早晨浪费了几个非常令人沮丧的时间,因为我在规则列表的中途进行编辑,并且在顶部列出了一个比预期更多的陷阱!
我们也很难找到相关的基准,并最终制定了自己的内部测试套件。一旦我们整理好规则,将命令正确排序并放入我们的Apache conf中,我们就不会发现对性能的负面影响。