Я пытался обновить свой 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;
}
}