web-dev-qa-db-ja.com

NGINX + Symfony-リダイレクトする内部ディレクティブは何ですか?

公式のNGINXドキュメントでは、本番レベルのSymfony用に次の構成があります。

# PROD
location ~ ^/app\.php(/|$) {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
   # When you are using symlinks to link the document root to the
   # current version of your application, you should pass the real
   # application path instead of the path to the symlink to PHP
   # FPM.
   # Otherwise, PHP's OPcache may not properly detect changes to
   # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
   # for more information).
   fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
   fastcgi_param DOCUMENT_ROOT $realpath_root;
   # Prevents URIs that include the front controller. This will 404:
   # http://domain.tld/app.php/some-path
   # Remove the internal directive to allow URIs like this
   internal;
}

完全な設定ファイルは見つけることができます ここ

internalは実際に何にリダイレクトしていますか?コメントでは、フロントコントローラーがURIから削除されると書かれていますが、その方法は完全にはわかりません。

2

何もリダイレクトしません。 外部リダイレクト、つまりhttp://example.com/app.php/some-pathのような場所を処理する方法を指定します。設定中は、404を返す必要があり、内部リダイレクトのみを許可します。内部リダイレクトとして処理される条件は、 internalディレクティブ のドキュメントにリストされています。

特定の場所を内部リクエストにのみ使用できることを指定します。外部リクエストの場合、クライアントエラー404(見つかりません)が返されます。内部リクエストは次のとおりです。

  • error_pageindexrandom_index、およびtry_filesディレクティブによってリダイレクトされたリクエスト。
  • アップストリームサーバーからX-Accel-Redirect応答ヘッダーフィールドによってリダイレクトされた要求。
  • ngx_http_ssi_module モジュールのinclude virtualコマンドおよび ngx_http_addition_module モジュールディレクティブによって形成されるサブリクエスト。
  • リクエストはrewriteディレクティブによって変更されました。
4
Esa Jokinen