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

magento с интерфейсом nginx и URL-адресом REST API

У нас есть magento, настроенный с помощью nginx, мы пытаемся использовать http // magentohost / api / rest для управления клиентами, но когда мы пытаемся получить доступ к этому URL-адресу, я получаю 404.

Просто интересно кому-нибудь правильная конфигурация для url-адреса api REST magento с nginx

наша конфигурация

server {
  listen 80;
  server_name store.magentohost.com;
  access_log /var/log/nginx/store.magentohost.com.access.log;
  error_log  /var/log/nginx/store.magentohost.com.error.log;

  root /home/store/public_html;

  location / {
    index    index.php index.html index.htm;
    try_files $uri $uri/ @handler; ## if missing pass the URI to magento's front handler
    expires 30d; ## assume all files are cachable
  }

  ## These locations would be hidden by .htaccess normally
  location /app/                { deny all; }
  location /includes/           { deny all; }
  location /lib/                { deny all; }
  location /media/downloadable/ { deny all; }
  location /pkginfo/            { deny all; }
  location /report/config.xml   { deny all; }
  location /var/                { deny all; }

  location @handler { ## Magento uses a common front handler
    rewrite / /index.php;
   }
  location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
    rewrite ^(.*.php)/ $1 last;
  }

  location ~ \.php$ {
    if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss
    expires        off; ## Do not cache dynamic content 
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param  MAGE_RUN_CODE default; ## Store code is defined in administration > Configuration > Manage Stores
    fastcgi_param  MAGE_RUN_TYPE store;
  }

  location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           36d;
  }
  location ~ /\.ht {
    deny all;
  }
  location ~ /\.hg {
    deny all;
  }

  location /nginx_status {
     stub_status on;
     access_log   off;
     allow ip;
     deny all;
    }


}

Отредактируйте конфигурацию Nginx относительно вашего приложения Magento, добавив обработчик местоположения для запросов API следующим образом:

location /api {
    rewrite ^/api/(\w+).*$ /api.php?type=$1 last;
}

источник: https://gist.github.com/mklooss/7300787#gistcomment-1245474

Добавьте конфигурацию api.

location /api {
    rewrite ^/api/rest /api.php?type=rest last;
    rewrite ^/api/v2_soap /api.php?type=v2_soap last;
    rewrite ^/api/soap /api.php?type=soap last;
}