如何仅阻止folder1目录中的文件?

How to block files only in folder1 directory?

提问人:Kirill Popov 提问时间:6/27/2023 最后编辑:Kirill Popov 更新时间:7/11/2023 访问量:34

问:

结构:

./project/
├── folder1/
    ├── folder2/
        ├── test.php
        ├── abc_123.xml
    ├── test.php
    ├── abc_123.xml
├── .htaccess

/.htaccess:

<FilesMatch "^\/folder1\/[a-z0-9_]+\.(php|log|xml)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

我的代码不起作用。不阻挡任何东西

UPD1: 如果我使用此代码,则所有嵌套目录中的文件也会被阻止。但我只需要在“/folder1/”中阻止。

<FilesMatch "^[a-z0-9_]+\.(php|log|xml)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>
正则表达式 Apache .htaccess

评论

0赞 Quentin 6/27/2023
请注意,文档说:如果您可以访问 httpd 主服务器配置文件,则应完全避免使用 .htaccess 文件。使用 .htaccess 文件会减慢 Apache http 服务器的速度。可以包含在 .htaccess 文件中的任何指令最好设置在 Directory 块中,因为它将具有相同的效果和更好的性能。
0赞 Quentin 6/27/2023
您是否首先确认为您的 HTTP 服务器启用了 .htaccess 支持?
0赞 arkascha 6/27/2023
并且您授予其内容以覆盖中央配置(“AllowOverride”指令)......
0赞 CBroe 6/27/2023
不知道为什么在模式中转义斜杠。也不确定与什么完全匹配 - 如果这甚至是完整的 URL 请求路径,或者只是路径已被剥离的文件名?(在文档中找不到任何关于这一点的明确信息。FilesMatch
0赞 Kirill Popov 7/11/2023
我在帖子中添加了“UPD1”。 @Quentin

答: 暂无答案