同前のtry_files
2474 ワード
nginxのtry_files
http://nginx.org/en/docs/http/ngx_http_コールバックmodule.唵try_files
try_files
を選択します。
説明
構文
try_files
——
コンテキスト
server、location
指定された順序でファイルが存在するかどうかを確認し、最初に見つけたファイルを使って要求処理を行います。処理は現在のコンテキストで実行されます。指向性ファイルの経路は、rootおよびalias命令に従って
WordpressとJoomlaの例:
http://nginx.org/en/docs/http/ngx_http_コールバックmodule.唵try_files
try_files
を選択します。
説明
構文
try_files
file ... uri
try_files file ... =code
デフォルト——
コンテキスト
server、location
指定された順序でファイルが存在するかどうかを確認し、最初に見つけたファイルを使って要求処理を行います。処理は現在のコンテキストで実行されます。指向性ファイルの経路は、rootおよびalias命令に従って
file
からパラメータ構成される。ディレクトリが存在するかどうかは、名前の末尾に斜線を指定することによって確認することができる。例えば$URI/
。任意のファイルが見つからない場合、内部リダイレクトは最後のパラメータで指定されたuri
に向けられます。たとえば:location /images/ {
try_files $uri /images/default.gif;
}
location = /images/default.gif {
expires 30s;
}
最後のパラメータは、以下の例のように、名前付きのlocationを指すこともできる。0.7.51バージョンから始まり、最後のパラメータはcode
であってもよい。location / {
try_files $uri $uri/index.html $uri.html =404;
}
プロキシMongrelの例:location / {
try_files /system/maintenance.html
$uri $uri/index.html $uri.html
@mongrel;
}
location @mongrel {
proxy_pass http://mongrel;
}
Druplal/FastCGI例:location / {
try_files $uri $uri/ @drupal;
}
location ~ \.php$ {
try_files $uri @drupal;
fastcgi_pass ...;
fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param QUERY_STRING $args;
... other fastcgi_param's
}
location @drupal {
fastcgi_pass ...;
fastcgi_param SCRIPT_FILENAME /path/to/index.php;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param QUERY_STRING q=$uri&$args;
... other fastcgi_param's
}
以下の例ではlocation / {
try_files $uri $uri/ @drupal;
}
try_filesコマンドはlocation / {
error_page 404 = @drupal;
log_not_found off;
}
もう一つの例がありますlocation ~ \.php$ {
try_files $uri @drupal;
fastcgi_pass ...;
fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
...
}
リクエストをFastCGIサーバに転送する前に、try_filesはPHPファイルが存在するかどうかを確認します。WordpressとJoomlaの例:
location / {
try_files $uri $uri/ @wordpress;
}
location ~ \.php$ {
try_files $uri @wordpress;
fastcgi_pass ...;
fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
... other fastcgi_param's
}
location @wordpress {
fastcgi_pass ...;
fastcgi_param SCRIPT_FILENAME /path/to/index.php;
... other fastcgi_param's
}