фреймфорк + отдельные php-файлы

VovansystemS vovansystems at gmail.com
Mon Mar 18 10:50:54 UTC 2013


Добрый день.

Подскажите как грамотнее написать конфиг для сайта, который использует
фреймворк и несколько отдельно лежащих php сценариев.

иерархия примерно такая:

/application/
/system/
/modules/
/static/
/upload/
/customphp1/
/customphp2/
..
/customphp30/
index.php

где customphp - папка с произвольным названием внутри которой
находятся php файлы, которые можно запускать при прямом обращении к
ним из браузера. таких папок может быть достаточно много.


Пока планирую так: для самого фреймворка стандартно:

location / {
    try_files      $uri  $uri/  @drupal;
}

location @drupal {
    fastcgi_pass   ...;

    fastcgi_param  SCRIPT_FILENAME  /path/to/index.php;
    fastcgi_param  SCRIPT_NAME      /index.php;
    fastcgi_param  QUERY_STRING     q=$uri&$args;

    ... прочие fastcgi_param
}

Но при обращении к файлам /somedir/not-to-be-viewed.php - nginx будет
отдавать их прямо в браузер..
Можно перечислить папки фреймворка и закрыть к ним доступ например так:

location ~ ^/(application|system|modules)/ {
	deny all;
}

Запуск php из папок со статикой тоже запрещаем:

location ~* ^/(?:uploads|static)/.*\.php$ {
	deny all;
}

А вот как правильно реализовать возможность запускать отдельно
лежащаие php сценарии - перечислять вручную таким образом?

location ~* /customphp1/(?:.*)\.php {}

Как лучше сделать и что поправить?


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