Имеется скрипт укорачивания url в один файл, для примера s.php Имеется множество location в nginx: /photo/ /author/ ... .... Как можно настроить в конфиге обработку location, которого нет в описании, и направить это все на файл s.php?
@Kaliha: Вы издеваетесь? Там документация на русском, и сразу же есть пример. Вы бы хоть читать то, что Вам дают не ленились. Что может быть не понятно:
Проверяет существование файлов в заданном порядке и использует для обработки запроса первый найденный файл, причём обработка делается в контексте этого же location’а. Путь к файлу строится из параметра файл в соответствии с директивами root и alias. С помощью слэша в конце имени можно проверить существование каталога, например, “$uri/”. В случае, если ни один файл не найден, то делается внутреннее перенаправление на uri, заданный последним параметром. Например:
location /images/ {
try_files $uri /images/default.gif;
}
location = /images/default.gif {
expires 30s;
}
@Kaliha: $uri это переменная конфига - все то , что пришло на nginx после домена. В вашем случае нужно:
location / {
try_files $uri /s.php;
}
тоесть в Вашем случае, если запросите site.com/photo/myfavoritephoto.jpg nginx дойдет до строки try_files $uri /s.php, попробует найти и отдать файл $uri (тут будет /photo/myfavoritephoto.jpg) если этого файла нет, он отдаст /s.php (это второй аргумент директивы try_files). Для большего понимания, как работет nginx включите debug и посмотрите логи, nginx очень подробно описывает логику резолва файла.
ps Если Вам и это не понятно, то не стоит загоняться, просто наймите фрилансера, а время потратьте для совершенствования в том, в чем разбираетесь лучше