htaccess阻止访问目录,但允许访问文件

Mar*_*cin 5 php directory .htaccess zend-framework apache2

我有这种情况。我正在Zend Framework和htaccess中开发应用程序,将每个请求都指向index.php。如果请求路径上存在某些文件或目录,则htaccess允许访问此文件,例如css,js,图像等。

现在,例如,我有这样的链接:

example.com/profile/martin-slicker-i231

使用Zend Router,它指向控制器帐户和操作视图配置文件。我想为我的用户添加一些avatart,并在公共文件夹中创建目录(这样,服务器和css和js这样的服务器都可以访问图像)。该目录名为“配置文件”,其中的子目录为“ martin-slicker-i231”。服务器可以看到所有路径,如下所示:

public/
  .htaccess
  index.php
  profile/
    martin-slicker-i231/
      avatar-small.jpg
Run Code Online (Sandbox Code Playgroud)

问题是,当我将浏览器指向example.com/profile/martin-slicker-i231时,它将我指向该目录,而不是控制器和操作。当我与用户一起删除文件夹时,流程转到控制器并执行操作。如何配置.htaccess,以便example.com/profile/martin-slicker-i231将指向控制器和操作,但对example.com/profile/martin-slicker-i231/avatar-small.jpg的请求则指向该文件。这是我的.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Gor*_*onM 0

根据 Apache 文档,以下内容将关闭目录列表

<Directory /path/to/directory>
   Options -Indexes
</Directory>
Run Code Online (Sandbox Code Playgroud)

您可能还想查看 mod_autoindex 的文档