httpd.conf AllowOverride All
Posted
技术标签:
【中文标题】httpd.conf AllowOverride All【英文标题】: 【发布时间】:2014-08-21 06:35:28 【问题描述】:我正在尝试从我的 codeigniter URL 中删除 index.php。我有带有codeigniter和ion auth的apache24。我可以让它工作的唯一方法是允许AllowOverride All
。
相关代码为:
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
使用 AllowOverride None
这将返回 404 错误代码。使用AllowOverride All
就可以了。
这对生产服务器有什么安全隐患?
【问题讨论】:
【参考方案1】:AllowOverride
指令用于允许在 Web 服务器中使用 .htaccess
以允许在每个目录的基础上覆盖 Apache 配置。我相信 CI 使用 mod_rewrites 使其正常工作。这就是为什么它只在您拥有AllowOverride All
时才有效,因为您告诉网络服务器允许使用 CI 使用的 .htaccess 文件。这就是简单的答案。不是说安全问题,而是为了.htaccess
文件的使用。
您很可能必须使用AllowOverride All
才能使用codeigniter,因为它就是这样工作的。使用这个指令不应该有任何重大的安全问题。安全方面你应该没问题。只是不要在<Directory />
块中使用AllowOverride All
。
仅在特定的网络目录中使用它。以下是您现在所拥有的,对于AllowOverride All
应该没问题。
<Directory "c:/Apache24/htdocs">
如果没有这个指令,.htaccess
文件将无法工作。查看文档以获得更详细的说明。
http://httpd.apache.org/docs/current/mod/core.html#allowoverride
【讨论】:
在<Directory />
块中使用AllowOverride All
有什么影响?
@ApurvaKunkulol 这将允许 Apache 搜索 .htaccess
文件一直到服务器根目录。除了不必要之外,Apache 文档出于“安全性和性能”的原因特别警告了这一点。以上是关于httpd.conf AllowOverride All的主要内容,如果未能解决你的问题,请参考以下文章
localhost 未读取 htaccess,httpd AllowOverride All 导致错误
在 apache2.conf 中包含 .htaccess 并带有“AllowOverride None”会减慢 Apache?