У нас есть 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;
}