【问题标题】:httpd.conf AllowOverride Allhttpd.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 就可以了。

这对生产服务器有什么安全隐患?

【问题讨论】:

    标签: apache .htaccess codeigniter httpd.conf


    【解决方案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 文档出于“安全性和性能”的原因特别警告了这一点。
    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 2017-01-25
    • 2015-08-01
    • 2014-07-04
    • 2017-07-14
    • 2013-10-25
    相关资源
    最近更新 更多