子資料夾的Nginx 位置配置
在Nginx 配置中,可以將特定資料夾路徑對應到不同的URI,以改進組織和路由。常見的場景是配置對目錄中子資料夾的存取。
考慮像 /var/www/myside/ 這樣的路徑結構,其中存在兩個子資料夾 /static 和 /manage。目標是透過 URI /(對於 /static)和 /manage(對於 /manage)存取這些子資料夾,同時確保 PHP 檔案的正確路由。
初始範例 Nginx 設定可能如下所示:
server { listen 80; server_name example.org; error_log /usr/local/etc/nginx/logs/mysite/error.log; access_log /usr/local/etc/nginx/logs/mysite/access.log; root /var/www/mysite; location /manage { root $uri/manage/public; try_files $uri /index.php$is_args$args; } location / { root $uri/static/; index index.html; } location ~ \.php { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; } }
但是,此設定可能無法正常存取 /manage。解決方案是在使用不同 URI 存取子資料夾時使用 alias 指令而不是 root。
這裡是修改後的 Nginx 設定:
server { ... location ^~ /manage { alias /var/www/mysite/manage/public; index index.php; if (!-e $request_filename) { rewrite ^ /manage/index.php last; } location ~ \.php$ { ... } } ... }
透過此修改,設定映射 /使用 root 靜態到 / 和使用別名 /manage 到 /manage。此外,try_files 指令和 if 指令確保正確處理對這些子資料夾中不存在的檔案的請求。
透過組合別名和根指令,以及正確使用位置區塊,Nginx 可以配置為有效地提供具有特定 URI 的子資料夾中的內容。
以上是如何有效配置 Nginx 位置區塊以服務具有不同 URI 的子資料夾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!