httpd.conf AllowOverride All

10 浏览
0 Comments

httpd.conf AllowOverride All

我正在尝试从我的CodeIgniter URL中删除index.php。我使用的是带有CodeIgniter和Ion Auth的Apache24。唯一能让它正常工作的方法是允许AllowOverride All

相关的代码如下:


    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

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

在生产服务器上使用此设置有什么安全隐患?

0
0 Comments

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文档明确警告对于"安全性和性能"原因,不要这样做。

0