httpd.conf AllowOverride All
AllowOverride All
指令用于允许在Web服务器中使用.htaccess
文件,以实现对每个目录的Apache配置进行覆盖。我相信CI使用mod_rewrites来正确工作。这就是为什么只有在使用AllowOverride All
时才有效,因为您正在告诉Web服务器允许使用CI使用的.htaccess文件。这就是简单的答案。这与安全性无关,而是为了使用.htaccess文件。
您很可能必须使用AllowOverride All
来使用codeigniter,因为这就是它的工作方式。使用此指令应该没有任何主要的安全问题。从安全角度来说,您应该没问题。只是不要在<Directory />
块中使用AllowOverride All
。
只在特定的Web目录中使用它。以下是您现在拥有并且应该使用AllowOverride All
的内容。
<Directory "c:/Apache24/htdocs">
如果没有这个指令,.htaccess文件将无法工作。请查看文档以获取更详细的解释。
http://httpd.apache.org/docs/current/mod/core.html#allowoverride
在<Directory />
块中使用AllowOverride All
会有什么影响?
这将允许Apache搜索.htaccess文件,直到服务器根目录。除了是不必要的外,Apache文档明确警告对于"安全性和性能"原因,不要这样做。