ホームページ  >  記事  >  バックエンド開発  >  サブフォルダーを別の方法で提供するように Nginx を構成するにはどうすればよいですか?

サブフォルダーを別の方法で提供するように Nginx を構成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-22 10:21:10170ブラウズ

How Can I Configure Nginx to Serve Subfolders Differently?

サブフォルダーの Nginx の場所の構成

Nginx 構成では、Web サイトのコンテンツを効果的に整理するために、サブディレクトリへのアクセスを管理することが重要です。 Web ルート ディレクトリ内に 2 つのサブフォルダー「/static」と「/manage」があるシナリオを考えてみましょう。

問題:

を構成する必要があります。 Nginx は、次のようにこれらのサブフォルダーへのアクセスを提供します:

  • ルート URI でアクセス可能な「/static」フォルダー(例: 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 ディレクティブの使用を検討することもできます。ただし、ネストされた場所ブロックが必要であり、一般にサブフォルダーの処理の効率が低くなります。

追加の注意事項:

  • ^~ 修飾子により、プレフィックスの場所が保証されます。正規表現の場所よりも優先されます。
  • try_files ディレクティブと alias ディレクティブは、次の理由により一緒に使用できません。既知のバグ。
  • 予期しない動作を避けるために、if ディレクティブは注意して扱う必要があります。

以上がサブフォルダーを別の方法で提供するように Nginx を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。