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,因为它就是这样工作的。使用这个指令不应该有任何重大的安全问题。安全方面你应该没问题。只是不要&lt;Directory /&gt; 块中使用AllowOverride All

仅在特定的网络目录中使用它。以下是您现在所拥有的,对于AllowOverride All 应该没问题。

&lt;Directory "c:/Apache24/htdocs"&gt;

如果没有这个指令,.htaccess 文件将无法工作。查看文档以获得更详细的说明。

http://httpd.apache.org/docs/current/mod/core.html#allowoverride

【讨论】:

&lt;Directory /&gt; 块中使用AllowOverride All 有什么影响? @ApurvaKunkulol 这将允许 Apache 搜索 .htaccess 文件一直到服务器根目录。除了不必要之外,Apache 文档出于“安全性和性能”的原因特别警告了这一点。

以上是关于httpd.conf AllowOverride All的主要内容,如果未能解决你的问题,请参考以下文章

localhost 未读取 htaccess,httpd AllowOverride All 导致错误

在 apache2.conf 中包含 .htaccess 并带有“AllowOverride None”会减慢 Apache?

apache 404403错误页面跳转

centos7 安装配置apache

Mac系统默认MAWP配置

php伪静态--隐藏地址实际路径方法