php - 如何从 Laravel 路由中排除文件夹?
问题描述
我目前正在开发一个 laravel 5.6 项目。在这里,我在“public/uploads/games”目录中上传并提取了 zip 文件(提取的文件包含 html、css、js 文件)。现在我想只向经过身份验证的用户授予对该文件夹的访问权限。所以,我在 routes/web.php 中包含了一个路由。这是我的路线:
Route::get('uploads', function() {
echo 'hello';
});
但是,因为我有一个名为“上传”的文件夹,所以这个路由不起作用。我需要这条路线来检查身份验证。稍后我将实现中间件。
任何帮助将不胜感激。
解决方案
Apacheuploads
在 call 之前检查是否是一个文件夹index.php
。
您可以RewriteCond %{REQUEST_FILENAME} !-d
从.htaccess
文件中删除,但这不是更好的解决方案。
为了保护公用文件夹或公用文件,您需要使用 Web 服务器,但更复杂。
我建议您在具有私有访问权限的存储路径中维护您的上传文件夹,并创建如下路径:
Route::get('uploads/{filename}', function ($filename) {
return file_get_contents(
storage_path('some-private-uploads-folder/' . $filename)
);
});
此实现是基本的,但可以帮助您解决问题。
推荐阅读
- lit-element - 当 Attribute 设置为 false 时,该属性是否仍可在元素内观察到?
- scikit-learn - ValueError:使用线性回归的垃圾邮件或非垃圾邮件预测
- asp.net-web-api - JSon 到 WebAPI 变为 [[]],[[]],[[]],[[]]
- angular - 使用ngrx在一个@Effect中构建多个HTTP调用的最简洁方法是什么
- oauth-2.0 - Google Home 帐号关联(返回结果时出错。)
- android - 从最近的应用列表中删除应用时会调用哪些生命周期事件?
- php - 具有相同键的 PHP SoapClient 元素
- regex - 正则表达式希望使用正则表达式查找包含多个单词的所有文本
- asp.net-core - 如何在 Entity Framework Core 中创建两个与同一实体的一对一关系
- c# - 通过 Span 修改变量时,优化构建和 JIT 编译是否会产生问题
?