Apache 307重定向重定向POST数据

时间:2017-02-16 16:25:37

标签: apache .htaccess

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

这不会重定向的原因是什么?

1 个答案:

答案 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]
目标网址末尾的

非常重要,因为它可以避免将旧的查询字符串附加到新的网址。