我在security.yml
文件中有下一个:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/forum/, role: ROLE_USER }
- { path: /usuarios/, role: ROLE_NO_ACCESS }
但如果我尝试访问导航栏中的/public/img/usuarios/otherDirectory/
内的文件,则图像会显示在浏览器中。
为什么不否认访问?
更新
我尝试将此添加到Apache站点配置(在我的localhost中):
<Directory /home/me/MyServer/itransformer-2.0/web/public/img/usuarios>
AllowOverride none
Options -Indexes
Order allow,deny
Deny from all
</Directory>
但我仍然可以直接访问图像。也许我做错了什么......
答案 0 :(得分:0)
您的文件位于public
文件夹中,因此它是public
,换句话说,这不是存储私人文件的正确位置。
根据this post(或this one on Stack Overflow),您可以从控制器提供文件。因此,请尝试在受保护的URL后面使用此控制器。
要提供多个文件,您必须将文件的路径存储在数据库中。例如:
+----+------------+
| id | path |
+----+------------+
| 1 | image.jpg |
| 2 | image2.jpg |
+----+------------+
文件管理在Symfony2 cookbook。
中说明