正如您所知,根据文档,当DirectorySlash设置为Off时,对/ folder的请求没有评估DirectoryIndex.这意味着请求不会自动映射到/folder/index.php.
mod_dir在请求处理的“fixup”阶段执行此检查. mod_rewrite负责您的RewriteRule定义,当您在.htaccess文件中指定规则时,也会在此阶段执行其处理.
但是,它的编程意识到mod_dir之类的模块,并包括一个检查,以确保使用尾部斜杠请求当前目录.如果没有,它拒绝处理请求,因为这样做可能会导致未定义的行为.
然后,请求转到内容生成阶段,由于请求未映射到真实文件,因此由mod_autoindex处理.鉴于默认情况下您的主机上已禁用索引,mod_autoindex将返回403 Forbidden,这是您所看到的.
请注意,由于不评估DirectoryIndex,即使mod_rewrite要处理请求,它仍然会失败,因为不会发生对index.php的自动解析,并且您的规则
RewriteRule . /folder/index.php [L]
不会匹配,因为.需要匹配某事(但请求将为空白).
启用DirectorySlash可以通过更正除了最后一个注释之外的所有前面提到的方案中的阻止操作来防止这种情况,最后一个注释由DirectoryIndex将请求映射到index.php的事实来处理.