Linux

如何使用萬用字元在 Nginx 中配置多個嵌套子目錄?

  • October 16, 2018

👋

抱歉,如果之前有人問過這個問題。我已經搜尋過,但找不到任何接近我想要完成的東西,我將不勝感激任何可以讓我更接近解決這個問題的跡象。😊

我有以下伺服器設置:

  • domain.com - 提供傳遞給php-fpm.
  • domain.com/{directory}/{subdirectory} - 為我放置在**{directory}中的所有****{subdirectories}*提供靜態 HTML 文件。請參閱下面的位置塊(使用 PHP 代理傳遞放置在 / 位置上方)*:
location ^~ /my_dir {
   alias /var/www/domain.com/my_dir;
   index index.html index.htm;
}

到目前為止非常基本。

問題:

但是,{my_dir}中的目錄之一是使用前端路由的 Vue 應用程序。由於沒有可用的domain.com/{my_dir}/{vue_app_dir}/{vue_path} ,在刷新瀏覽器並且 Nginx 返回 404 之前一切正常。為了解決這個問題,我必須將任何伺服器請求從**{vue_path}重定向到{vue_app_dir}/index.html**。

我已經嘗試了多種伺服器塊組合,高於我之前發布的一個,但沒有成功。😫

再次,如果之前回答過,我很抱歉。

假設my_dirlocation指令中與alias指令名稱相同,則可以使用root代替。有關詳細資訊,請參閱此文件

location您可以為 Vue 應用添加另一個,並包含一條try_files語句以避免 404 響應。有關詳細資訊,請參閱此文件

例如:

location ^~ /my_dir {
   root /var/www/domain.com;
   index index.html index.htm;
}
location ^~ /my_dir/vue_app {
   root /var/www/domain.com;
   index index.html index.htm;
   try_files $uri $uri/ /my_dir/vue_app/index.html;
}

引用自:https://serverfault.com/questions/935720