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

71
10

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

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

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

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

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

location / {
}

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

Любая идея, чтобы выполнить это?

Благодарю!

спросил(а) 2014-10-31T22:45:00+03:00 5 лет, 11 месяцев назад
1
Решение
70

Вы можете использовать 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
}

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

ответил(а) 2014-10-31T23:02:00+03:00 5 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема