5

さらに処理するために、すべての 404 を php ファイルに送信するように Nginx を構成しようとしています。私はそれが機能していません。try_files を使用するとデフォルトの 404 が返され、try_files を使用しないと入力ファイルが指定されません。これは私がこれまでに持っているものです:

server {
    listen 192.168.100.44:80;

    location / {
        index  index.html;
    }
    root /var/www/test.example.com;

    error_page  404              /404.php;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        #try_files      $uri = 404;
        fastcgi_pass   unix:/tmp/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
4

1 に答える 1

8

答えは次の行を追加することでした: fastcgi_intercept_errors on;

次に、404 を処理し、場合によっては PHP スクリプトから別のステータス コードを返すために: error_page 404 /404.php; 単に次のように変更する必要がありました: error_page 404 = /404.php;

Nginx IRC チャンネルの親切な人々のおかげで、正しい方向性を示すために少し時間を割いてくれました。

于 2012-11-01T08:22:02.750 に答える