在我正在使用的产品中,我在应用程序根目录下找到了一个.htaccess文件,它基本上将对不存在文件的请求重写为中央处理脚本。
出于性能原因,我现在想将该规则移到我的服务器(虚拟主机)配置中。
最简单的方法是将规则简单地复制到<Directory>
部分,因为它们被解释为.htaccess上下文,对吧?嗯 - 它有效。
我是否可以从修改规则并将它们移动到服务器/顶层上下文而不是目录上下文中获益?
编辑:我似乎不太清楚。通过'目录上下文',我 NOT 表示.htaccess文件,但是我的服务器配置文件中有<Directory>
部分。
答案 0 :(得分:0)
服务器配置文件仅在服务器启动时读取并解析一次。但每次请求完成时都会读取和解析.htaccess文件。此外,在读取所请求文件所在目录的过程中,任何.htaccess文件都会被解析。如果你有这样的结构:
htdocs/
foo/
.htaccess
bar/
.htaccess
baz/
.htaccess
somefile.html
并且您将请求/foo/bar/baz/somefile.html
,所有.htaccess文件将解析和解析文件层次结构到somefile.html
。现在你可以自己想象一下这是不是开销。
答案 1 :(得分:0)
这是一篇有趣的博文:
http://www.fubra.com/blog/2008/01/htaccess-vs-httpdconf/
似乎他们得出结论,在httpd.conf
中使用规则的速度只有6.6%因此,您可以获得一些性能提升,但您也可以灵活地更改每个目录的规则或不重新启动服务器。