.htaccess 有限制吗?

kov*_*nin 8 mod-rewrite .htaccess

大家好。我只是想知道 Apache 2 的 .htaccess 文件是否有限制。我正在开发一个缓存插件,并认为使用 .htaccess 文件指向生成的静态 html 文件可能是个好主意。

那么,有人尝试过达到极限吗?.htaccess 可以在 5,000 个 mod_rewrite 规则下正常工作吗?10,000呢?20,000?我的一个朋友说他在一个有 40 万多个帖子的博客上工作。这会奏效吗?

谢谢,

~@kovshenin

fre*_*eit 9

我很确定您可以使用多少个 mod_rewrite 规则没有硬性限制;apache 基本上会看到 .htaccess 文件并按顺序运行 mod_rewrite 规则

但是,您可能会遇到一些限制:

  1. 文件大小。.htaccess 文件的大小可能有 2GB 或 4GB 的限制。可能存在基于内存的较低有效限制(.htaccess 文件可能会被读入内存)
  2. 时间。每个 mod_rewrite 都需要一些时间来处理(即使它不匹配),最终你会得到足够的时间以秒为单位测量时间,这将是非常糟糕的。

您可能想要探索 RewriteMap 指令并设置一个散列文件,并将您的 20,000 个 mod_rewrite 规则减少为单个规则,该规则改为在 20,000 个项目的散列文件数据库中查找条目。


小智 5

如果您是服务器管理员,则不应按照 Apache 的建议使用 .htaccess。.htaccess 文件中的所有内容都可以并且应该<Directory>在配置中的一个块中。原因是,Apache 将在每次请求读取和解析此文件之前访问硬盘驱动器,然后再提供内容。这是一次非凡的表演。

那么,您会在配置中放入 20,000 行以供内存加载吗?您最好将规则存储在数据库中。

推荐阅读:http : //httpd.apache.org/docs/2.0/howto/htaccess.html