首頁 >後端開發 >php教程 >如何設定 Nginx 以不同方式提供子資料夾服務?

如何設定 Nginx 以不同方式提供子資料夾服務?

DDD
DDD原創
2024-11-22 10:21:10274瀏覽

How Can I Configure Nginx to Serve Subfolders Differently?

子資料夾的Nginx 位置配置

在Nginx 配置中,管理對子目錄的存取對於有效組織網站內容至關重要。讓我們考慮這樣一個場景:Web 根目錄中有兩個子資料夾「/static」和「/manage」。

問題:

您需要設定Nginx提供對這些子資料夾的訪問,如下所示:

  • 可在根目錄訪問的“/static”資料夾URI(例如,http://example.org/)
  • 可透過「/manage」存取「/manage」資料夾(例如,http://example.org/manage)

解決方案:

要解決此問題,您需要使用別名指令「/manage」子資料夾:

server {
    # ... (unchanged configuration)
    
    location ^~ /manage {
        alias /var/www/mysite/manage/public;
        index index.php;
        
        if (!-e $request_filename) { rewrite ^ /manage/index.php last; }
        
        location ~ \.php$ {
            if (!-f $request_filename) { return 404; }
            fastcgi_pass 127.0.0.1:9000;
            
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        }
    }
}

使用Root 的替代解決方案:

在某些情況下,您可以考慮使用root指令而不是別名。但是,它需要嵌套位置區塊,並且通常對於子資料夾處理效率較低。

附加說明:

  • ^~ 修飾符確保前綴位置優先於正規表示式位置。
  • 因為已知的原因,try_files 和 alias 指令不能一起使用bug。
  • 應謹慎處理 if 指令,以避免意外行為。

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

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