我有一个使用cPanel在Linux上托管的网站。我可以访问网站的所有页面,但“存储”目录中的文件除外。文件结构是在我的“ public”文件夹和我的主要网站文件(“ tbcrp”)的基础上设置的,并以“ public”文件夹作为根目录/默认目录。文件结构图片:https://gyazo.com/e1e958f75c92fdc201f2b5975d109f37
“ public”文件夹中的符号链接指向网站/ storage / app / public中的文件夹。想法是,这允许访问存储的子部分,并且是文档中访问的常用方法: https://laravel.com/docs/5.8/filesystem#the-public-disk
当我尝试通过以下地址访问文件时: my-domain.com/storage/profiles/homepage-mockup.jpg
我收到403禁止的错误。
文件结构根目录下的.htaccess文件是:
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.my-domain.com/$1 [R,L]
RewriteCond %{HTTP_HOST} ^my-domain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.my-domain.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
在我的“公共”文件夹中,我还有另一个.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]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我没有太多的访问经验,但是相同的文件结构在本地有效,因此我认为我的网站中存在权限配置错误。
谢谢!