nginx, как обслуживать все статические файлы и пересылать весь остальной трафик в fastcgi

Я хочу напрямую обслуживать все существующие файлы (кроме файлов .php)

А остальные ВСЕ запросы (не только .php) направляйте их на сервер fastcgi.

Я могу перенаправить все .php файлы в fastcgi с помощью:

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}

И обслуживать другие статические файлы с помощью:

location / {
}

Но я хочу сначала обработать «все статические файлы, которые существуют и не оканчиваются на .php», а затем обработать «все остальные запросы» (необязательно заканчивающиеся на php) на fastcgi,

Есть идеи сделать это?

Спасибо!

0

Решение

Ты можешь использовать try_files для этого.

location / {
try_files $uri $uri/ /index.php$is_args$args;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;

// other CGI parameters
}

Убедитесь, что вы знаете об общем подводные камни.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]