我目前正在开发一个laravel 5.6项目。在这里,我已经在' public / uploads / games'中上传并解压缩了zip文件。目录(提取的文件包含html,css,js文件)。现在,我想仅向经过身份验证的用户授予对此文件夹的访问权限。所以,我在routes / web.php中包含了一条路由。这是我的路线:
Route::get('uploads', function() {
echo 'hello';
});
但是,因为我有一个名为' uploads'的文件夹,所以此路由不起作用。我需要这条路线来检查身份验证。我稍后会实现中间件。
任何帮助将不胜感激。
答案 0 :(得分:0)
Apache在调用uploads
之前检查index.php
是否为文件夹。
您可以从RewriteCond %{REQUEST_FILENAME} !-d
文件中删除.htaccess
,但这不是更好的解决方案。
为了保护公共文件夹或公共文件,您需要使用Web服务器,但更复杂。
我建议您使用私人访问权限在存储路径中维护您的uploads文件夹,并创建如下路由:
Route::get('uploads/{filename}', function ($filename) {
return file_get_contents(
storage_path('some-private-uploads-folder/' . $filename)
);
});
此实施是基本的,但可以帮助您解决问题。
答案 1 :(得分:0)
请检查您是否已上传.htaccess文件以及是否已启用重写规则。 如果它工作,它应该忽略期望index.php文件的每个文件和目录。 我确定它无法正常工作。