nginx try_files 和多個位置區塊

nginx try_files 和多個位置區塊

我有 2 個網域,每個網域都有自己的文檔根。一個網域的根目錄包含我希望透過另一個網域存取的資料夾 pics 和 docs。因此domain1.com/pics/house.jpg 和domain2.com/pics/house.jpg 將顯示相同的圖片。

以下是domain2 的設定檔的摘錄。它不起作用 - 當我訪問域 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.
}

相關內容