Назад | Перейти на главную страницу

URL-адреса Nginx, которые сопоставляются с файлами PHP?

Я пытаюсь настроить свой сервер nginx так, чтобы любой файл php был доступен без указания его расширения.

Я уже знаю много подобных вопросов / ответов вроде https://stackoverflow.com/questions/7760883/nginx-setting-a-default-file-extension/7761779#7761779 https://stackoverflow.com/questions/7760883/nginx-setting-a-default-file-extension и https://stackoverflow.com/questions/19975218/remove-php-from-url-with-rewrite-rule но я хочу пойти немного дальше:

Если запрос содержит файл .php, мы вернем 404.

Так, например, скажем, у меня в папке:

Мне нужно получить к ним доступ, используя

и если пользователь попробует /search.php, он получит 404 в ответ.

Последняя часть для меня непростая. Более того, когда я обращаюсь к файлам без расширения PHP, NGinx загружает файл для меня, не компилируя его (так что у меня есть доступ к источнику кода, содержащему доступ к базе данных: /)

Как я могу сделать ?

Вот моя фактическая конфигурация:

server {
        listen 80 default_server;

        root /srv/www/status/;

        index index.php;

        access_log /var/log/nginx/default-access_log;
        error_log /var/log/nginx/default-error_log;

        location / {
                try_files $uri $uri.php =404;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_index index.php;
                fastcgi_pass php5-fpm-sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
}

Спасибо за помощь! :)