TmCrafz Asked: 2020-11-02 13:02:05 +0800 CST2020-11-02 13:02:05 +0800 CST 2020-11-02 13:02:05 +0800 CST 在 httaccess 中拒绝访问的不同方法 772 我想拒绝通过 .htaccess 访问给定文件夹中的所有文件和子目录。我找到了这两种方法: deny from all <Files "*"> Order Deny,Allow Deny from all </Files> 这两者有什么区别吗? .htaccess deny 1 个回答 Voted Best Answer MrWhite 2020-11-03T13:49:00+08:002020-11-03T13:49:00+08:00 如评论中所述,DenyandOrder指令以前在 Apache 2.4 上已弃用(我假设您正在使用它 - 见下文)。并且仅用于向后兼容 (mod_access_compat)。这些只能在Apache 2.2和更早版本上使用。 deny from all 是的,这确实“拒绝”了对当前目录、文件和子目录的所有访问。但是,如果没有明确说明Order处理DenyandAllow指令的位置,那么它如何与相关指令交互就没有明确定义。 Allow子目录.htaccess文件中的指令应该覆盖它。 <Files "*"> Order Deny,Allow Deny from all </Files> 通过将指令包装在<Files>容器中,您将强制块被延迟合并。与上面的示例不同,这可能会覆盖Allow子目录中的指令。除非Allow子目录中的指令也包含在<Files>容器中。这可能是可取的,也可能不是可取的。在大多数情况下,这不是必需的。 这*只是一个匹配所有文件(和目录)的通配符。 在Apache 2.4上,您应该改用Require指令 (mod_authz_core): Require all denied 关于<Files "*">容器的相同内容也适用于此。
如评论中所述,
Deny
andOrder
指令以前在 Apache 2.4 上已弃用(我假设您正在使用它 - 见下文)。并且仅用于向后兼容 (mod_access_compat)。这些只能在Apache 2.2和更早版本上使用。是的,这确实“拒绝”了对当前目录、文件和子目录的所有访问。但是,如果没有明确说明
Order
处理Deny
andAllow
指令的位置,那么它如何与相关指令交互就没有明确定义。Allow
子目录.htaccess
文件中的指令应该覆盖它。通过将指令包装在
<Files>
容器中,您将强制块被延迟合并。与上面的示例不同,这可能会覆盖Allow
子目录中的指令。除非Allow
子目录中的指令也包含在<Files>
容器中。这可能是可取的,也可能不是可取的。在大多数情况下,这不是必需的。这
*
只是一个匹配所有文件(和目录)的通配符。在Apache 2.4上,您应该改用
Require
指令 (mod_authz_core):关于
<Files "*">
容器的相同内容也适用于此。