http://nginx.org/en/docs/http/ngx_http_core_module.html#try_filesphp
- | 說明 |
---|---|
語法 | try_files file ... uri ; try_files file ... =code ; |
默認 | —— |
上下文 | server、location |
以指定順序檢查文件是否存在,並使用第一個找到的文件進行請求處理。處理將在當前上下文中執行。指向文件的路徑根據 root 和 alias 指令從 file
參數構造。能夠經過在名稱末尾指定斜線來檢查目錄是否存在,例如,$URI/
。若是找不到任何文件,則內部重定向將指向最後一個參數中指定的 uri
。例如:html
location /images/ { try_files $uri /images/default.gif; } location = /images/default.gif { expires 30s; }
最後一個參數也能夠指向一個命名的 location ,如如下示例。從 0.7.51 版本開始,最後一個參數也能夠是一個 code
:nginx
location / { try_files $uri $uri/index.html $uri.html =404; }
代理 Mongrel 示例:git
location / { try_files /system/maintenance.html $uri $uri/index.html $uri.html @mongrel; } location @mongrel { proxy_pass http://mongrel; }
Drupal/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 }
在如下示例中ide
location / { try_files $uri $uri/ @drupal; }
try_files 指令至關於wordpress
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 文件是否存在。code
Wordpress 與 Joomla 示例:server
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 }