Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法访问Laravel中共享主机中的符号链接文件_Laravel_.htaccess_Web Hosting_Symlink - Fatal编程技术网

无法访问Laravel中共享主机中的符号链接文件

无法访问Laravel中共享主机中的符号链接文件,laravel,.htaccess,web-hosting,symlink,Laravel,.htaccess,Web Hosting,Symlink,我使用hostinger,在我的父托管目录中有两个文件夹 我的laravel应用程序文件夹 公共网页 在public/index.php中,我更改了 <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On Options +FollowSymLi

我使用hostinger,在我的父托管目录中有两个文件夹

  • 我的laravel应用程序文件夹
  • 公共网页
  • 在public/index.php中,我更改了

    <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>
    
  • require _DIR _./../vendor/autoload.php'
    需要_DIR./../my laravel app folder/vendor/autoload.php'
  • $app=require\u once\uuuu DIR\uuuu./../bootstrap/app.php'
    $app=require_uonce uu DIR_uu./../my laravel app folder/bootstrap/app.php'
  • 在public/.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>
    

    但是我仍然无法访问链接的存储文件,并且出现了
    404
    错误。

    最后我找到了解决方案,就是在创建符号链接时,我必须包含文件夹的绝对路径,而不是当前路径。例如

    • 对于
      my laravel应用程序文件夹/storage/app/public
      替换为
      /home/u440262284/domains/mysite.com/my laravel应用程序文件夹/storage/app/public
    • 也适用于
      public\u html/storage
      替换为
      /home/u440262284/domains/mysite.com/public\u html/storage

    成功了

    最后我找到了解决方案,就是在创建符号链接时,我必须包含文件夹的绝对路径,而不是当前路径。例如

    • 对于
      my laravel应用程序文件夹/storage/app/public
      替换为
      /home/u440262284/domains/mysite.com/my laravel应用程序文件夹/storage/app/public
    • 也适用于
      public\u html/storage
      替换为
      /home/u440262284/domains/mysite.com/public\u html/storage
    成功了

    do符号链接

    ln -s my-laravel-app-folder/storage/app/public public_html/storage
    
    public\u html/storage中删除index.phphtaccess文件,并从您的laravel项目中手动复制public\u html/storage。 您不需要更改您的index.php文件,尝试将域路径更改为public\u html/storage/public

    do symlink

    ln -s my-laravel-app-folder/storage/app/public public_html/storage
    
    public\u html/storage中删除index.phphtaccess文件,并从您的laravel项目中手动复制public\u html/storage
    您不需要更改您的index.php文件,尝试将您的域路径更改为public\u html/storage/public

    很抱歉,如果我在创建符号链接时没有指定绝对路径,那么它对我不起作用。很抱歉,如果我在创建符号链接时没有指定绝对路径,它对我不起作用。