bounty将在4天后过期。回答此问题可获得+50的声誉奖励。softya正在寻找来自声誉良好来源的答案。
我正在使用Laravel并使用以下代码将文件上传到文件夹:
$request->file('file')[$key]->storeAs('public/' . $model[0] . '/' . $data['id'], $name);
我已经运行了这个命令:
php artisan storage:link
在本地主机上一切正常,但当我上传到cPanel时,我得到这个错误:
Forbidden
You don't have permission to access this resource.
Server unable to read htaccess file, denying access to be safe
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
我检查了上传的文件有权限700
,而不是像文件夹$model[0]
那样的755
。
如何解决此问题?
我的.htaccess
文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
2条答案
按热度按时间h9vpoimq1#
作为测试,将您的
.htaccess
文件权限设置为666。我打赌它会起作用。然后重置为640,将.htaccess
的所有权更改为root
,在Apache httpd配置中查找Group
设置,并在Apache配置中将group更改为Group
设置。这可以防止root以外的任何人修改您的
.htaccess
文件,但允许Apache读取它。您还应该确保Laravel的存储目录可由Apache
User
或Group
写入。f87krz0w2#
.htacces文件:Chmod(到755)是一个选项。
另一种方法是使用Chown将所有者或组更正为Web服务器的所有者或组。在通常称为“www-data”Shell的标准设置中:chown www-data .htaccess(所有者)或壳牌:chown root.www-data .htaccess(Group)或两者Shell:chown www-data.www-data .htaccess(所有者和组)
但您的Error可能与上传文件的File权限有关
也许你必须定义和应用的可见性uplaoded文件太多. Hace看看:https://laravel.com/docs/10.x/filesystem#file-visibility