我一直被这个问题困扰,找不到解决办法。我使用的是 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 即可,那么事情就会变得容易得多。
我怎样才能实现这个目标?