PayPal令人讨厌...如果您有数千个客户订阅POST
IPN(即时付款通知)到某个网址...您永远不能更改该网址。如果您希望将IPN发送到另一个URL,他们的建议......告诉所有客户取消订阅并在更改IPN URL后启动新订阅。大。
因此,经过深入研究,我找到的解决方案是使用307重定向,该重定向不仅会重定向到新的网址,还会随身携带POST
数据。但是我在Apache中遇到了一点麻烦。它似乎根本不起作用。以下是我的.htaccess
文件中的行:
Redirect 307 /index.php?view=account&task=paypal https://api.anotherdomain.com/paypal/ipn
这不会重定向的原因是什么?
答案 0 :(得分:3)
使用Redirec指令无法与查询字符串匹配。您需要使用mod-rewrite匹配%{QUERY_STRING}变量。以下规则可以满足您的需求:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^view=account&task=paypal$ [NC]
RewriteRule ^/?index\.php$ http://example.com/paypal/? [R=307,L]
目标网址末尾的?非常重要,因为它可以避免将旧的查询字符串附加到新的网址。