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

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

DDD
發布: 2024-11-22 10:21:10
原創
244 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板