我正在尝试从我的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
就可以了。
在生产服务器上对此有什么安全隐患?
答案 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