Думал обойтись простым реврайтом, но не тут-то было, оказалось немного сложнее.
Разрешено только обращение к index файлу, в примере это index.php, в нем и должна быть вся логика работы сайта. Если нужен доступ к другим php файлам, исправить
location = /index.php
на что-то типа
location ~ /\.php
. Все остальное запрещено.
server {
listen 80;
server_name site.ru;
root /var/www;
index index.php;
# Если путь существует
location = / { }
location = /index.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
location / {
deny all;
return 302 /;
}
# Если путь не существует
error_page 404 = @notfound;
location @notfound {
return 302 /;
}
}