查询 htaccess 并阻止访问目录

查询 htaccess 并阻止访问目录

我开发了一个网站,其结构可以概括如下:

 htdocs
     .htaccess
     ...
     wp-content
      ...
      uploads
       ...
       Private
        .htaccess
        ...

我需要从网站内的“仅限会员”访问“私人”目录中的文件,但要保护这些文件不被直接访问。例如,如果我在 Web 浏览器中输入以下内容,我可以直接访问文档:

http://www.Mywebsite.com/wp-content/uploads/Private/Admin-Accounts.xls

我认为可以通过在文件中包含以下内容来解决这个问题Private/.htaccess

order deny,allow
deny from all

但是,似乎无论文件中的内容是什么Private/.htaccess,我仍然可以直接访问 Private 目录中的文件。根目录中的文件内容.htaccess似乎被超越了。

如果我搜索网站,我会.htaccess在多个目录中找到文件。如何定义正在使用的目录?

答案1

我认为可以通过在文件中包含以下内容来解决这个问题Private/.htaccess

order deny,allow
deny from all

是的,通常这就是防止直接访问Private子目录及其内的所有文件所需的全部操作。(除了Order/Deny指令已被弃用,您应该Require在 Apache 2.4 上使用相应的指令 - 但这是一个次要问题。)

根目录中的文件内容.htaccess似乎超出了规则。

有可能,但可能性不大。通常,.htaccess子目录中的文件会覆盖父级文件。

我们需要查看根.htaccess文件的内容才能进一步调试。

但是,服务器配置中可能.htaccess没有为该子目录启用覆盖(或者具体来说,仅为根目录启用)。.htaccess文件处理不是默认行为。必须先使用指令在服务器配置中为相关目录明确启用此功能。尽管通常情况下,为文档根目录AllowOverride启用覆盖将为整个子目录树启用覆盖。.htaccess.htaccess

什么决定了正在使用哪一个?

如果.htaccess为请求的目录树启用了覆盖(如上所述),.htaccess则将处理特定文件系统路径上的所有文件。通常,顺序如下:父目录到子目录,这样子.htaccess文件中的指令就会覆盖父目录。但请注意,这可能因模块而异。

相关内容