X-Accel-Redirect 的错误内部重定向别名

Wrong internal redirect alias for X-Accel-Redirect

Nginx 内部重定向文件搜索路径错误。

我正在使用 nginx 和 laravel(PHP) 并希望进行安全在线 storage.if 用户存在并具有权限,用户可以下载文件。我使用 'X-Accel-Redirect' 进行此操作。

    //it works with apache X-Sendfile
    public function download()
    {
        $filename = "4.jpg";
        return response(null)
            ->header('Content-Disposition', 'attachment; filename="' . $filename . '"')
            ->header('X-Accel-Redirect', "/storage/app/public/$filename")
            ->header('X-Sendfile', base_path("storage/app/public/$filename"));
    }

nginx 配置文件

    root /var/www/public;
#...
    location /storage/ {
      alias /var/www/storage/;
      internal;
    }
#also i tried root key same result not changed

我认为别名没有覆盖到父作用域根键,但我努力解决了这个问题。

Nginx Log ---
[error] 35#35: *1 open() "/var/www/public/storage/app/public/4.jpg" failed (2: No such file or directory),

普通文件存储在 /var/www/storage/app/public/4.jpg

我用 nginx conf 修复了它。 nginx 没有赶上 url 所以我改变了这些配置

 location ^~ /storage/ {
      alias /var/www/storage/;
      internal;
    }