Regex .htaccess-允许目录列表和只允许访问文件的某些扩展名

Regex .htaccess-允许目录列表和只允许访问文件的某些扩展名,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我想白名单上的一些文件在我的服务器上,但不禁用目录列表。 当我将它们添加到FilesMatch时,它会禁用目录列表 我当前的代码: allow from all Options +Indexes <FilesMatch ".(dem|dem.bz2)$"> allow from all </FilesMatch> <FilesMatch ".(?<!dem|dem.bz2)$"> deny fr

我想白名单上的一些文件在我的服务器上,但不禁用目录列表。 当我将它们添加到
FilesMatch
时,它会禁用目录列表

我当前的代码:

allow from all
Options +Indexes

<FilesMatch ".(dem|dem.bz2)$">
    allow from all
</FilesMatch>

<FilesMatch ".(?<!dem|dem.bz2)$">
    deny from all
</FilesMatch>
allow from all
选项+索引
通融
全盘否定

如果只允许访问dem和dem.bz2文件,则应拒绝任何其他内容。当前my.htaccess可以工作,但目录列表已禁用

文件名:/etc/apache2/sites available/000-default.conf

    <Directory /var/www/html/test/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

选项索引跟随符号链接
允许超越所有
要求所有授权

您可以通过一个简单的
mod_rewrite
规则执行此操作,如下所示:

Options +Indexes
RewriteEngine On

RewriteRule ^(?!index\.|.+\.dem(?:\.bz2)?$). - [F,NC]

您能否澄清您的要求?您希望允许哪些内容和阻止哪些内容?如果您只允许访问dem和dem.bz2文件,则应拒绝任何其他内容。目前我的.htaccess可以使用,但目录列表是禁用的。请提供应该允许的文件名示例?任何以.dem或dem.bz2扩展名结尾的文件。例如:test.dem、dummy.dem.bz2应该是允许的。拒绝访问扩展名不以dem或dem2结尾的任何其他文件。bz您可以不垃圾邮件发送不相关的标记,如why
bash
shell
?但目录列表仍处于禁用状态。幸运的是,目录列表仍处于禁用状态。我在description中添加了我的/etc/apache2/sites available/000-default.conf配置,也许我需要更改一些内容,然后再次尝试更新的答案