2016-11-28 3 views
0

に私は(主にPHPアプリケーション用)のserveral要旨と設定例でnginxのコンフィグスニペットを発見された最初のtry_filesをい指令はこれまでに一致しますか?私にはこれはナンセンスのハッキングのように見えます。ダブルtry_filesディレクティブは、nginxの

確認してくださいか、なぜない説明 - 感謝:)

+0

無条件で@siteにジャンプするハックです。個人的には、私は 'error_page'変種が好きです。 [この回答](http://stackoverflow.com/questions/20288537/nginx-try-files-proxy-and-named-location-with-404-fallback#20694873)を参照してください。 –

答えて

0

は、これは、ここで何が起こるかです:

要求でパスが、例えば、/あるときに最初の場所= /のみが使用されていますhttp://example.com/。第2の場所/は、他のすべてのURLに使用されます。 http://example.com/fooまたはhttp://example.com/bar

最初の場所の理由は、indexディレクティブ(index.htmlなどのリダイレクト先)からの干渉を避けるためです。

try_files - ディレクティブは、最初に@siteという名前のファイルを探します。存在しないファイルは、名前付きの場所@siteにリダイレクトされます。この構造の理由は、指定された場所へのリダイレクトは純粋に内部的なものであるため、@siteの場所にはクライアントから直接アクセスできず、$uriはこのリダイレクト時に変更されずに保持されます(他のリダイレクトではそうではありません)。最初のパラメータ@siteは、実際の既存のファイル以外は何でもかまいません。わかりやすくそれをDUMMYと呼ぶことを好みます。

第2の場所は静的ファイルを最初に試します。見つからなければ、指定された場所にリダイレクトされます。

関連する問題