nginx try_files 和多个位置块

nginx try_files 和多个位置块

我有 2 个域,每个域都有自己的文档根目录。一个域的根目录包含我希望通过另一个域访问的文件夹 pics 和 docs。因此 domain1.com/pics/house.jpg 和 domain2.com/pics/house.jpg 将显示相同的图像。

以下是域 2 配置文件的摘录。它不起作用 - 访问域 2 上的域 1 根目录中的图像时,我总是得到 404。我欢迎任何关于如何重写它以修复它的建议。谢谢

root /home/admin/domain2.com/html;

index index.php index.html;

location /pics/ {
       root /home/admin/domain1.com;
}

location /docs/ {
       root /home/admin/domain1.com;
}

location / {
        try_files $uri $uri/ =404;
}

location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

答案1

事实证明,当 /pics/ 包含更多文件夹时,我的代码不起作用。使用以下方法有效。

location ^~ /pics/ {
       root /home/admin/domain1.com;
       # Queries beginning with /pics/ and then stops searching.
}

相关内容