И вам не хворать.
УФФ...
Во-первых, конструкция if не содержит ветки else. В ПРИНЦИПЕ!
Во-вторых, если не понимаете, как работает if, лучше не юзайте, словите кучу проблем. То же самое относится к try_files.
В-третьих, как минимум, вам нужно разделить запросы на 2 группы: админские и юзерские. Или по какому-то признаку с обработкой в пхп контроллере, или чтобы они падали в разные локейшены.

Для этого изучайте location, rewrite, map и регексы (тоже, как минимум).

Юзер может запускать админские скрипты? Жэсть!!!


Четверг, 28 июня 2018, 22:19 +03:00 от al3x <nginx-forum@forum.nginx.org>:

Здравствуйте,

имеются директории:

/home/admin/ - в этой папке находятся файлы (напр. index.php, conf.php,
admin/index.php), которые нужно скрыть от юзера (но запускать он их может).
/home/user/ - в этой папке файлы юзера.

Задача:

ЕСЛИ (запрошенный http адрес соответствует файлу в папке /home/user/)
{
ТО вернуть клиенту этот файл
}
ИНАЧЕ
{
ЕСЛИ (файл /home/user/index.php существует)
{
ТО вызвать скрипт /home/user/index.php для обработки запроса
}
ИНАЧЕ
{
указать root -директорию /home/admin/ и

ЕСЛИ (запрошенный http адрес соответствует файлу в папке /home/admin/)
{
ТО вернуть клиенту этот файл
}
ИНАЧЕ
{
вызвать скрипт /home/admin/index.php для обработки запроса
}
}
}


Т.е. если юзер создает файл, например, /home/user/index.php, то при открытии
сайта должен запускаться именно этот файл. Если же этого файла нет, то
запускаться должен /home/admin/index.php и тд. При этом в папках кроме
php-файлов могут находиться файлы css, картинки и другие.

Подскажите пожалуйста рабочий конфиг для такой задачи.

Пробовал через try_files пока ничего не получается...

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280329#msg-280329

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru


--