>> Если урлы сделаны нормально и проблема только в том, что исходный код
>> php файлов можно получить запросом
Да не исходный, а файлы запускаются отдельно и результат выполнения вылазит в браузере. Если выдергнуть какойто контроллер из mvc, то понятное дело что повылазит куча нотисов, ошибок и прочего, потому как его должен запускать роутер, а не напрямую из адресной строки.
Пошаманил немного, вроде то что хотел.
server {
listen 80;
server_name site.com
a1.site.com;
root /home/www/site.com;
index index.php;
location / {
try_files $uri $uri/ index.php?$query_string;
}
#тут происходит редирект, если запрашивают вложенные файлы
location ~ /application/.+ {
#deny all;
rewrite ^ / permanent;
}
location ~ \.php$ {
root /home/www/site.com;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /site.com;
fastcgi_param SCRIPT_FILENAME /site.com$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /site.com$fastcgi_script_name;
include fastcgi_params;
}
}
Сейчас при запросе /application/startup.php происходит редирект на главную, что и нужно было. Правда, не знаю за что тогда отвечает:
try_files $uri $uri/ index.php?$query_string;
вроде оно должно редиректить на index.php если ктото запрашивает файл или директорию.