如果您可以使用httpd.conf,是否应该使用htaccess文件仍然是真的?
Apache网站上说:“一般来说,你不应该使用.htaccess文件,除非你没有访问主服务器configuration文件。” 但是我不知道这个build议多大年纪,或者这个build议还是相关的。
我正在一个只使用httpd.conf文件的大型网站上工作。 但是这个过程非常漫长,当然需要重新启动。 随着主站点下运行的部门站点的数量(以及所有使用httpd.conf文件),这是一个不利的变化。
现在我们正在运行wordpress 3(多站点configuration)。 我想testingconfiguration规则的一些更改,但目前我唯一能做的就是继续重新启动apache,我不想在活动网站上做这些。 (特别是重写规则似乎在一些博客文章被“www”所占据,而另一些则不是)
我正在考虑在wordpress文件夹中启用.htaccess,但这是明智的吗?
我们的服务器很忙(根据谷歌的说法,每天大约有6万页的浏览量),但是没有太费劲。
目前的最佳做法是什么? 服务器现在是否足够令人担忧,与轻松pipe理.htaccess文件相比,可能轻微的性能下降是可以忽略的?
但是这个过程非常漫长,当然需要重新启动。
如果长度是一个问题,那么考虑打破configuration部分,并使用包含指令。 正如其他人所说,有可能重新加载httpdconfiguration'重新加载'或'重新启动' ,这应该减less您的用户中断。 你需要训练你的pipe理员使用'重新加载'或'优美',这是容易的说,然后做 – 许多人不知道这些命令,有些人不相信他们。
下面是为什么.htaccess文件被认为是邪恶的一些原因:
.htaccess文件造成混乱。 我曾经inheritance了一个在整个目录层次结构中有超过50个.htaccess文件的网站,这个网站是由跨越6年的几十个不同的人创build的。 要弄清楚任何特定目录的“服务器configuration”是非常困难的,或者为什么某些function在某些目录上不起作用。
安全性:任何可以写入.htaccess文件的用户都可以覆盖您放置在httpd.conf中的一些精心devise的设置,除非您小心使用AllowOverride限制可用选项。 有关详细信息,请参阅何时(不)使用.htaccess文件 。
审计:为主httpd.conf和Include'd目录创buildconfigurationpipe理非常简单。 这为谁做了什么提供了一个很好的审计线索。 当configuration文件遍布整个目录层次结构时,实现configurationpipe理就更加困难。
失去控制:有人可能创build一个.htaccess文件,而不是告诉你。 假装有人在周五下午5点做了这个,添加了一堆mod_rewrite规则,做了错误的事情,并打破了一堆页,然后人离开了周末。 直到周一才发现问题。
当然.htaccess文件是有意义的 – 如果只有less数的.htaccess文件,每个文件的目的都很好理解。
.htaccess文件的缺点是你必须加载每个请求的文件。 所以它增加了开销。 如果你所有的规则都在你的conf文件中,那么当apache加载的时候它们被加载,就是这样。 所以,如果你的网站是60K以下的文件,它必须阅读。 再加上任何可以预处理的规则都不会,这可能会导致响应延迟。 现在,磁盘速度,处理器和内存都是非常丰富和快速的,我认为大多数网站的效果不太明显。
正如crimson_penguin所说,有一个为什么有一个Apache重新读取configuration文件,而无需重新启动它。 大多数操作系统使用reload命令而不是重新启动。 如果使用apache2ctl命令,您将运行apache2ctl graceful您可以首先运行apache2ctl configtest以确保一切顺序。 当然,你需要以root身份运行它。
每次应用.htaccess都会被parsing。 这在服务器上增加了一个小而不必要的负载。 conf文件只在服务器加载或重新加载时才被parsing。
使用.htaccess取决于在conf文件中启用访问。
使用.htaccess使得pipe理员可以更less地控制安全性,因为任何可以编写内容目录的用户都可以覆盖该目录的安全设置。 (有限制这种能力的configuration选项。)在许多系统上,如果服务器受到威胁,Web服务器本身可以编写内容目录,增加潜在的损害。
使用apache2ctl graceful来取代networking服务器的重新启动。 如果您运行任何HTTPS服务,您可以configurationWeb服务器对SSL密钥的访问。