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

Получение полнофункциональных HTTP-методов для работы с директивой индекса nginx

Я пытался обновить свой API, чтобы он был полностью совместим с REST, и мне не удалось заставить DELETE, PUT, OPTION и т. Д. Работать с директивой index. Я перепробовал все конфигурации, которые могу найти здесь, и не могу понять, что делаю не так.

Эти методы работают нормально, если я использую index.php в конце URL-адреса, и я знаю, что nginx наивно не поддерживает выполнение этого с помощью директивы index без настройки, но я не могу, хоть убей, заставить его работать . Я пытался сделать это с помощью перезаписи, DAV и различных настроек блока местоположения, но безуспешно. Приветствуется любая помощь, текущая конфигурация:

server {
        server_name api.-.-;

        access_log /var/log/nginx/api.-.-.access.log;
        error_log  /var/log/nginx/api.-.-.error.log;

        root /var/www/html/api.-.-/api;
        index index.php;

        include /etc/nginx/cloudflare/cloudflare.conf;
        listen 127.0.0.1:8000;

        gzip off;

        underscores_in_headers on;

        add_header 'Access-Control-Allow-Origin' 'https://-.-' always;
        add_header 'Access-Control-Allow-Credentials' 'true' always;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
        add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
        #add_header 'HTTP-X-REST-METHOD' $request_method always;

        location / {
                try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                #fastcgi_param HTTP_X_REST_METHOD $request_method;
                fastcgi_read_timeout 600;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        }
}