404, коли Sagepay намагається зв'язатися з URL-адресою сповіщення Cartthrob у Nginx

https://xxx.xxx.xxx/themes/third_party/ cartthrob/lib/extload.php

добре працює, але

https://xxx.xxx.xxx/themes/ third_party/cartthrob/lib/extload.php/sage_s

повертає 404.

Моя nginx серверна конфігурація виглядає наступним чином:

server {
  listen 443 default_server ssl;
  ssl_certificate /etc/nginx/ssl/xxx_xxx_xxx.pem;
  ssl_certificate_key /etc/nginx/ssl/xxx_xxx_xxx.key;
  server_name xxx.xxx.xxx;
  root /sites/xxx_xxx_xxx/public_html;

  access_log /var/log/nginx/xxx_xxx_xxx-access.log;
  error_log  /var/log/nginx/xxx_xxx_xxx-error.log info;

  location/{
    index index.php;
    try_files $uri $uri/ @ee;
  }

  location @ee {
    rewrite ^(.*) /index.php?$1 last;
  }

  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php5;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
}
3
спробуйте додати після помилки next_rings: location /themes/third_party/cartthrob/lib/extload.php {rewrite ^ (. *) /themes/third_party/cartthrob/lib/extload.php?$1 last; }
додано Автор Nikos Steiakakis, джерело

2 Відповіді

спробуйте наступну конфігурацію:

server {
  listen 443 default_server ssl;
  ssl_certificate /etc/nginx/ssl/xxx_xxx_xxx.pem;
  ssl_certificate_key /etc/nginx/ssl/xxx_xxx_xxx.key;
  server_name xxx.xxx.xxx;
  root /sites/xxx_xxx_xxx/public_html;

  access_log /var/log/nginx/xxx_xxx_xxx-access.log;
  error_log  /var/log/nginx/xxx_xxx_xxx-error.log info;

  location /themes/third_party/cartthrob/lib/extload.php { 
    rewrite ^(.*) /themes/third_party/cartthrob/lib/extload.php?$1 last; 
  }

  location/{
    index index.php;
    try_files $uri $uri/ @ee;
  }

  location @ee {
    rewrite ^(.*) /index.php?$1 last;
  }

  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php5;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
}
3
додано
Так, це чудово працює - дякую!
додано Автор David Tchepak, джерело

Ensure your firewalls allow outbound Port 443 (HTTPS only) & inbound ports 443 (& optionally 80 HTTP) access in order to communicate with our servers (on Test/Live).

Перевірте не проблему DNS, якщо не отримаєте нашу пошту (Sage Pays).

Які основні відмінності між двома нотаріальними URL-адресами?

Коли ви підтверджуєте повідомлення повідомлень Sage Pays, коли ви надсилаєте статус, StatusDetail і RedirectURL, переконайтеся, що ви очистите буфер відповіді, щоб видалити код заголовка, коментарі або HTML, оскільки Sage Pay Server очікує, що "Status =" буде першими символами відповідей.

1
додано
Привіт! Дякуємо за відгук, але ця проблема майже напевно пов'язана з моєю nginx конфігурацією. Я сподіваюсь, що хтось інший мав ту ж проблему, і зможу повідомити мені, як налаштувати nginx правильно. Все, здається, працює добре - у тому числі Cartthrob і Sagepay.
додано Автор David Tchepak, джерело