在 apache2.conf 中包含 .htaccess 并带有“AllowOverride None”会减慢 Apache?
Posted
技术标签:
【中文标题】在 apache2.conf 中包含 .htaccess 并带有“AllowOverride None”会减慢 Apache?【英文标题】:Including .htaccess in apache2.conf with 'AllowOverride None' slows down Apache? 【发布时间】:2014-08-05 13:30:30 【问题描述】:如果您有权访问主服务器配置文件(通常称为
httpd.conf
),则应将.htaccess
文件中的逻辑添加到主配置文件中的<Directory>
部分中。这通常是推荐的方式,因为使用.htaccess
文件会降低 Apache 的速度! (Source)
我认为这基本上意味着,如果可能的话,我应该在 /etc/apache2/apache2.conf
中使用 Include httpd.conf
和 AllowOverride None
指令。
但除了语义(或其他),为什么我不能简单地包含 .htaccess
本身?为了我的方便,我这样做......
文件: /etc/apache2/apache2.conf
#
# [... ORIGINAL CONTENTS OF APACHE2.CONF ...]
#
<Directory /var/www/example.com/public>
DirectoryIndex index.php index.html
AllowOverride None
Include /var/www/example.com/public/.htaccess
</Directory>
使用apache2.conf
中包含的.htaccess
文件和AllowOverride None
指令,我可以在/var/www/example.com/public/.htaccess
中简单地添加我网站的所有重写规则。
如果需要为另一个子目录使用另一个 .htaccess 文件,我只需在 apache2.conf
中为新的 .htaccess
文件添加另一个 Include
,就像我现在做的那样。
我的问题是,这是否与使用 httpd.conf
一样高效? (我相信I was told otherwise here,这就是我问的原因。)如果不是,为什么不呢?
我更喜欢使用 .htaccess 的原因: 我的服务器运行 WordPress,并且我使用的一些 WordPress 插件(SEO、缓存等)在 .htaccess 文件中添加了重写规则。通过使用 .htaccess,我不必自己手动执行此操作,并且可以简单地让插件完成它们的工作。
【问题讨论】:
【参考方案1】:是的,它与直接放在 httpd.conf 中的运行时性能相同。操作部分是在启动时解析它,而不是在将请求映射到文件系统并检查 htaccess 并每次解释它时。
【讨论】:
以上是关于在 apache2.conf 中包含 .htaccess 并带有“AllowOverride None”会减慢 Apache?的主要内容,如果未能解决你的问题,请参考以下文章
debian下的apache2的配置文件apache2.conf缺失语句?
mod_rewrite 适用于 .htaccess 文件,但不适用于 apache2.conf
使用sed替换apache2.conf文件中的代码块内的文本
AH00526:/etc/apache2/apache2.conf 第 74 行的语法错误:参数文件中的 Mutex 目录无效:$APACHE_LOCK_DIR