我想知道文件大小是否.htaccess
重要?我读到过一些文章说大.htaccess
文件会降低网站性能。
我的.htaccess
文件大小为51KB
,其中500 lines
主要包含RewriteCond %{HTTP_REFERER}
用于阻止垃圾邮件引荐网站的规则。
但我没有注意到任何网站加载延迟或性能问题。
如果我将这 500RewriteCond %{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]
这会降低 CPU 负载并减少 CPU 周期吗?还是会保持 500 条独立线路不变?
答案1
有这么多规则,你真的应该接受Apache 文档中的建议铭记在心
.htaccess
如果您有权访问 httpd 主服务器配置文件,则应完全避免使用文件。使用.htaccess
文件会降低 Apache http 服务器的速度。任何可以包含在文件中的指令.htaccess
最好都设置在目录块中,因为它会具有相同的效果,且性能更好。
.htaccess
文件有两个主要的性能影响点:
- 必须扫描目录树才能找到它们。只需关闭它们即可避免这种开销。
- 文件中的每个规则都
.htaccess
需要针对每个请求进行评估,而将这些规则放在常规配置文件中意味着它们在 Apache 启动(或重新加载)时只会被评估一次。
因此,最好将这些规则放入主配置文件中。
但我没有注意到任何网站加载延迟或性能问题。
当然,这些性能考虑只有在负载较高时才有意义。对于大部分空闲的服务器,这不太重要,但如果负载很高,这将开始产生实际影响。