如果目录包含某个文件扩展名,则重定向/重写目录

如果目录包含某个文件扩展名,则重定向/重写目录

我一直被这个问题困扰,找不到解决办法。我使用的是 Apache 2.4.41。

如果当前查看的文件夹中包含具有特定文件扩展名的任何文件(在本例中,我将使用 txt),则我尝试在网站上创建重写规则。我已启用目录索引,因此当用户单击包含其中一个文件的文件夹时,它将使用我设置的规则进行重写。

我的问题是,我不确定如何检测这一点。我考虑过使用 RewriteCond,但无法让它工作,也不知道出了什么问题。

RewriteCond %{REQUEST_FILENAME}/^(*.txt)$ -f

它没有出错或者返回 500,但也没有执行我想要的操作。

我还尝试使用 If 指令:

<If "-f %{REQUEST_URI} . '/*\.(txt)$'">
    # Do stuff
</If>

我非常确定我使用的方法完全错误,但是我无法确定是否存在正确的方法,因为我找不到任何例子。

我的目标是让该目录及其任何子目录遵循我为其设置的设置。

/thing1/test.txt <- YES
/thing1/subthing1/ <- YES
/thing2/txt.data <- NO
/thing2/subthing2/ <- NO

如果目录中的文件不存在,则没有关系。由于我的 apache 配置方式,它将重定向到 404 ErrorDocument。

实际用途和计划是允许较旧的虚拟世界软件通过 HTTP 连接到我的网络服务器上的世界并进行探索,因为大多数较旧的软件不支持 HTTPS。我运行一个小型档案项目,如果我只需要在必要时强制使用 HTTP 即可,那么事情就会变得容易得多。

我怎样才能实现这个目标?

相关内容