我试图从我的codeigniter URL中删除index.php。我有apache24与codeigniter和ion auth。我可以使它起作用的唯一方法是允许AllowOverride All

相关代码为:

<Directory "c:/Apache24/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>


使用AllowOverride None会返回404错误代码。使用AllowOverride All可以工作。

在生产服务器上,这对安全性有何影响?

最佳答案

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

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

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

<Directory "c:/Apache24/htdocs">

如果不是该指令,则.htaccess文件将不起作用。请查看文档以获取更详细的说明。

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

10-07 21:18