大家好。我只是想知道 Apache 2 的 .htaccess 文件是否有限制。我正在开发一个缓存插件,并认为使用 .htaccess 文件指向生成的静态 html 文件可能是一个好主意。
那么,有人尝试过达到这个限制吗?.htaccess 能否在 5,000 条 mod_rewrite 规则下正常工作?10,000 条呢?20,000 条呢?我的一个朋友说他经营的博客有 40 多万条帖子。这能行得通吗?
谢谢,
〜@kovshenin
答案1
我很确定对于可以使用的 mod_rewrite 规则数量没有硬性限制;apache 基本上会查看 .htaccess 文件并按顺序运行 mod_rewrite 规则
但是,您可能会遇到一些限制:
- 文件大小。.htaccess 文件的大小可能限制为 2GB 或 4GB。根据内存情况,可能存在较低的有效限制(.htaccess 文件可能会被读入内存)
- 时间。每个 mod_rewrite 都需要一些时间来处理(即使它不匹配),最终您将获得足够的时间以秒为单位来测量时间,这将是非常糟糕的。
您可能想要探索 RewriteMap 指令并设置一个哈希文件,然后将 20,000 个 mod_rewrite 规则减少为一个在 20,000 个项目哈希文件数据库中查找条目的规则。
答案2
如果您是服务器管理员,则不应使用 Apache 推荐的 .htaccess。.htaccess 文件中的所有内容都可以且应该放在<Directory>
配置的块中。原因是,Apache 会在每次请求时先访问硬盘,以读取和解析此文件,然后再提供内容。这会极大地影响性能。
那么,您会在配置中放入 20,000 行代码以便通过内存加载吗?最好将规则存储在数据库中。