質問: 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から削除されると書かれていますが、その方法は完全にはわかりません。
回答: 何もリダイレクトしません。 外部リダイレクト、つまりhttp://example.com/app.php/some-pathのような場所を処理する方法を指定します。設定中は、404を返す必要があり、内部リダイレクトのみを許可します。内部リダイレクトとして処理される条件は、 internalディレクティブ のドキュメントにリストされています。 特定の場所を内部リクエストにのみ使用できることを指定します。外部リクエストの場合、クライアントエラー404(見つかりません)が返されます。内部リクエストは次のとおりです。 error_page、index、random_index、およびtry_filesディレクティブによってリダイレクトされたリクエスト。 アップストリームサーバーからx-accel-redirect応答ヘッダーフィールドによってリダイレクトされた要求。 ngx_http_ssi_module モジュールのinclude virtualコマンドおよび ngx_http_addition_module モジュールディレクティブによって形成されるサブリクエスト。 リクエストはrewriteディレクティブによって変更されました。