httpd.conf AllowOverride All

时间:2014-06-30 19:41:56

标签: apache .htaccess codeigniter httpd.conf

我正在尝试从我的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 个答案:

答案 0 :(得分:24)

AllowOverride指令用于允许在Web服务器中使用.htaccess以允许在每个目录的基础上覆盖Apache配置。我相信CI使用mod_rewrites使其正常工作。这就是为什么它仅在你有AllowOverride All时才有效,因为你告诉网络服务器允许使用CI使用的.htaccess文件。这是一个简单的答案。这不是关于安全性,而是使用.htaccess文件。

您很可能必须使用AllowOverride All来使用codeigniter,因为这是它的工作方式。使用此指令不应该有任何重大的安全问题。安全明智你应该没事。只需AllowOverride All块中使用<Directory />

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

<Directory "c:/Apache24/htdocs">

如果不是这个指令,.htaccess文件将不起作用。有关更详细的说明,请查看文档。

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