SagepayがNginxのCartthrob通知URLに連絡しようとすると404

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
error_logの後に次の行を追加してください:location /themes/third_party/cartthrob/lib/extload.php {書き換え^(。*)/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).

私たちの(Sage Pays)Notificationポストを受け取っていない場合、DNSの問題をチェックしないでください。

2つのNotificationURLの主な違いは何ですか?

Sage Paysの通知ポストを確認するとき、Status、StatusDetail、およびRedirectURLを送信するとき、Sage Pay Serverは "Status ="が応答の最初の文字であると予想しているので、ヘッダーコード、コメントまたはHTMLを削除するために応答バッファをクリアしてください。

1
追加された
こんにちは!応答してくれてありがとう、しかし、この問題はほぼ確実に私のnginxの設定に関連しています。私は他の誰かが同じ問題を抱えていて、私にnginxを正しく設定する方法を知らせることができることを期待しています。 CartthrobやSagepayなど、他のすべてがうまくいっているようです。
追加された 著者 David Tchepak,