Re: Как запретить отдачу файлов из location?

Maxim Dounin mdounin на mdounin.ru
Ср Янв 19 21:08:26 MSK 2011


Hello!

On Wed, Jan 19, 2011 at 05:26:07PM +0000, Max Ivanov wrote:

> Хочу сделать что-то вроде whitelist на файлы и при этом не отдавать на
> php файлы которые существуют (мало ли что там есть).
> 
> Для этого надо запретить скачивание файлов в location если они есть и
> корректно уходить на 404 если их нет.
> 
> location / {
>  error_page 404 = @drupal;
>  return 403;  # <--- вот так не работает, не отрабатывает на @drupal никогда
> }

Так понятно почему не работает: "return 403" отработает в фазе 
rewrite для всех запросов.  До модуля static, который мог бы 
сгенерировать 404-ю ошибку, дело просто не доходит.

Тут только через if, т.е. как-то так:

    location / {
        if (-f $request_filename) {
            return 403;
        }

        ... pass to drupal here ...
    }

Maxim Dounin



Подробная информация о списке рассылки nginx-ru