web-dev-qa-db-ja.com

ワイルドカードを使用してNginxで複数のネストされたサブディレクトリを構成するにはどうすればよいですか?

????

これが以前に尋ねられた場合は申し訳ありません。私は検索しましたが、私が達成しようとしていることに近いものは何も見つかりませんでした。これを解決することに近づくことができる兆候があれば幸いです。 ????

次のサーバー設定があります:

  • domain.com -php-fpmに渡されたWordPressサイトプロキシ)を提供します。

  • domain.com/{directory}/{subdirectory}-すべての静的HTMLファイルを提供します{subdirectories}内部に配置しました{directory} =。以下のロケーションブロックを参照してください(PHPプロキシパス)を使用して/ロケーションの上に配置):

    location ^~ /my_dir {
        alias /var/www/domain.com/my_dir;
        index index.html index.htm;
    }
    

これまでのところかなり基本的です。

問題:

ただし、{my_dir}内のディレクトリの1つは、フロントエンドルーティングを使用しているVueアプリです。ブラウザが更新され、Nginxが404を返すまで、すべて正常に機能します。 domain.com/{my_dir}/{vue_app_dir}/{vue_path}が利用できないという事実に。これを修正するには、サーバーリクエストを{ vue_path}から{vue_app_dir} /index.html

以前に投稿したサーバーブロックよりも多くのサーバーブロックの組み合わせを試しましたが、成功しませんでした。 ????

繰り返しになりますが、これが以前に回答された場合は申し訳ありません。

1
Catalin Vasile

locationディレクティブのmy_diraliasディレクティブが同じ名前であるとすると、代わりにrootを使用できます。詳細については、 このドキュメント を参照してください。

Vueアプリに別のlocationを追加し、404応答を回避するためにtry_filesステートメントを含めることができます。 このドキュメント を参照してください。詳細。

例えば:

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;
}
0
Richard Smith