.htaccess文件大小是否重要?

我想知道.htaccess的文件大小是否重要? 我读过一个大的.htaccess文件会降低网站性能。

我的.htaccess文件大小是51KB ,它包含大约500 lines ,大多数是RewriteCond %{HTTP_REFERER}规则来阻止垃圾邮件引用网站。

但我没有注意到任何网站加载滞后或性能问题。

如果我将这500个RewriteCond %{HTTP_REFERER}行转换为20行,每行包含25个垃圾邮件引用域名,使用()| 符号,它会改变什么?

例如转换以下行:

 RewriteCond %{HTTP_REFERER} hol\.es [NC,OR] RewriteCond %{HTTP_REFERER} hys\.cz [NC,OR] RewriteCond %{HTTP_REFERER} zzz\.com\.ua [NC,OR] RewriteCond %{HTTP_REFERER} hypersito\.com [NC,OR] RewriteCond %{HTTP_REFERER} tode\.cz [NC,OR] RewriteCond %{HTTP_REFERER} mzf\.cz [NC,OR] 

如下:

 RewriteCond %{HTTP_REFERER} (hol\.es|hys\.cz|zzz\.com\.ua|hypersito\.com|tode\.cz|mzf\.cz) [NC,OR] 

它会减lessCPU负载并导致更less的CPU周期? 还是会保持相同的500个单独的行?

有了这么多规则,你真的应该把Apache文档的build议放在心上

如果您有权访问httpd主服务器configuration文件,则应该完全避免使用.htaccess文件。 使用.htaccess文件会降低您的Apache HTTP服务器速度。 您可以包含在.htaccess文件中的任何指令在目录块中设置得更好,因为它具有相同的效果,性能更好。

.htaccess文件有两个主要的性能影响点:

  • 目录树必须扫描它们。 关掉它们就避免了这种开销。
  • 每个.htaccess文件中的每条规则都需要针对每个请求进行评估,而将这些规则放在常规configuration文件中意味着在Apache(或重新加载)启动时,它们会被评估一次。

所以,将这些规则放到主configuration文件中会更好。

但我没有注意到任何网站加载滞后或性能问题。

当然,这些性能方面的考虑只有在工作量较高的情况下才有意义。 对于大多数空闲的服务器来说,这不是很相关,但是如果负载变大,这将开始产生真正的影响。