我使用hostinger,在我的父托管目录中有两个文件夹
- 我的laravel应用程序文件夹
- public_html
在public/index.php中我更改了
require __DIR__.'/../vendor/autoload.php';
到require __DIR__.'/../my-laravel-app-folder/vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
到$app = require_once __DIR__.'/../my-laravel-app-folder/bootstrap/app.php';
在公共/.htaccess文件中我更改了
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
Options +FollowSymLinks
# 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
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.php [L]
</IfModule>
从父目录/目录,我已经运行
ln -s my-laravel-app-folder/storage/app/public public_html/storage
但我仍然无法访问链接的存储文件,并出现404
错误。
do符号链接
ln -s my-laravel-app-folder/storage/app/public public_html/storage
从public_html/storage中删除index.php和.htaccess文件,并手动将从您的laravel项目复制到public _html/sterage的index.php文件,请尝试将域路径更改为public_html/storage/public
最后我找到了解决方案,这是在创建符号链接时,我必须包含文件夹的绝对路径,而不是当前路径。例如,
- 对于
my-laravel-app-folder/storage/app/public
替换为/home/u440262284/domains/mysite.com/my-laravel-app-folder/storage/app/public
而是 - 也适用于
public_html/storage
替换为/home/u440262284/domains/mysite.com/public_html/storage
成功了!!!