首頁 >後端開發 >php教程 >如何設定 Nginx 來為來自不同 URI 的巢狀子資料夾提供服務?

如何設定 Nginx 來為來自不同 URI 的巢狀子資料夾提供服務?

Barbara Streisand
Barbara Streisand原創
2024-11-29 02:28:13253瀏覽

How Can I Configure Nginx to Serve Nested Subfolders from Different URIs?

巢狀子資料夾的Nginx 位置配置

在Nginx 配置的上下文中,存取具有特定URI 的子資料夾可能具有挑戰性。這就是位置指令發揮作用的地方。

考慮以下場景:您有一個類似 /var/www/mysite/ 的目錄結構,其中包含兩個子資料夾:/static 和 /manage。您希望透過根 URI(例如“http://example.org/”)訪問 /static 並透過“/manage”訪問 /manage(例如“http://example.org/manage”)。

讓我們分解提供的 Nginx 配置:

server {
  listen 80;
  server_name example.org;
  ...

  # Static folder location
  location / {
    root $uri/static/;
    index index.html;
  }

  # Manage folder location (attempt 1)
  location /manage {
    root $uri/manage/public;
    try_files $uri /index.php$is_args$args;
  }

  # PHP processing location
  location ~ \.php {
    ...
  }
}

雖然 / 位置工作正常,但 /manage 位置失敗。這是因為 root 指令不正確。要在別名中使用子資料夾,應使用別名而不是 root。

/manage 的更新位置應如下所示:

location ^~ /manage {
  alias /var/www/mysite/manage/public;
  ...
}

透過這些修改,Nginx 將正確服務根URI 處來自/static 的靜態檔案和「/manage」處來自/ manage 的動態內容。

以上是如何設定 Nginx 來為來自不同 URI 的巢狀子資料夾提供服務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn