繁体   English   中英

一旦首先应用全部,Apache AllowOverride便不适用于子目录

[英]Apache AllowOverride none doesn't work for sub-directories once All has been applied first

我不确定这里出什么问题,但是我有以下conf:

    # Root
    <Directory /var/www/xxx/>
            AllowOverride All

            Header always append Directory Home
    </Directory>


    # images
    <Directory /var/www/xxx/images/>
            AllowOverride None

            Order allow,deny
            allow from all

            Header always append Directory images
    </Directory>

在根目录下,我有一个.htaccess文件,可以将其包含在目录中的所有位置。

我正在尝试做的-是从此配置中排除“图像”目录。 我为每个目录添加了一个特殊的标头,以便可以对其进行调试,并根据下面的CURL命令-它正确地遵循了规则。

< HTTP/1.1 401 Authorization Required
< Directory: Home, images
< Last-Modified: Fri, 21 Sep 2012 09:47:28 GMT
< ETag: "9e81e5-4069-20b94c00"
< Accept-Ranges: bytes
< Content-Length: 16489
< Connection: close
< Content-Type: image/png

问题是,根据标题(首页,图片),我收到的是401而不是200OK-它首先获得“全部”,然后应该用“无”覆盖它-但事实并非如此,我仍然收到401,这可能是什么问题?

您在父目录中有一个htaccess文件,该文件需要授权并且正在应用到/images/目录。 AllowOverride指令允许htaccess文件中的指令,它不会删除或禁止父htaccess文件可能具有的任何内容。

因此,如果您有:

  1. 文档根目录: AllowOverride All
  2. 文档根目录htaccess文件:需要验证,有效用户

接着:

  1. 图片目录: AllowOverride None
  2. 图片目录htaccess:由于AllowOverride ,此文件中的任何内容均不会应用

但父htaccess中的所有指令仍然适用。

如果要将/images目录排除在不需要身份验证的范围之外,则需要在父htaccess(或vhost配置,或任何设置所在的位置)的身份验证设置中设置排除项。

通过使用“满足任何条件”,我解决了子目录没有AUTH的问题

<Directory /var/www/xxx/images/>
    allow from all
    Satisfy Any

    Header always append Directory images
</Directory>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM