1

PHPサイトのnginx構成で存在しないすべての場所を適切に処理するには? そのような場所の 5 つの可能なケースを把握できます。

  1. 不適切なファイル: example.com/notexist.jpg

  2. 不適切なフォルダ: example.com/notexist

  3. ネストされた不適切なフォルダー: example.com/notexist1/notexist2/..../notexist10000

  4. (3)と(1)の組み合わせ: example.com/notexist1/notexist2/..../notexist10000/not.exist.jpg

  5. 存在しない php ファイル: example.com/notexist.php

これらすべてのケースをカバーする小さくて強力なソリューションはありますか? また、CPU と IO のオーバーヘッドが追加されるため、(-d と -f を使用して) ファイルとディレクトリをチェックしないようにする必要があります。

前もって感謝します!

4

2 に答える 2

1

try_filesは問題を完全に解決します

location / {
    try_files $uri $uri/index.html $uri.html =404;
}

not_found_page に絶対パスを設定することも非常に重要です。そうしないと、ページ レイアウトが壊れてしまいます。

于 2012-12-27T16:05:21.280 に答える
0

5 つのケースすべてで、通常は 404 が返されるため、次の方法でこれらすべてのケースの特別な処理を追加できます。

  1. 名前付きの場所の作成
  2. その名前の場所を 404 エラー ページとして参照します。

それは次のようになります:

server {      
  error_page 404 = @errors;

  location @fallback {
    # do whatever you want to do on faulty reqeusts
  }
}
于 2012-11-02T13:25:30.017 に答える