2017-02-16 17 views
2

PayPalは何千もの顧客の購読がある場合POST特定のURLへのIPN(インスタント決済通知)...決してそのURLを変更することはできません。 IPNを別のURLに送信させたい場合は、そのアドバイスを参考にして、IPN URLを変更した後ですべての顧客にサブスクリプションをキャンセルし、新しいサブスクリプションを開始するように指示します。すばらしいです。Apache 307 POSTデータをリダイレクトするためのリダイレクト

私が見つけた解決策は、新しいURLにリダイレクトするだけでなく、POSTのデータをそれに沿って運ぶ307リダイレクトを使用することでした。私はApacheでそれに少し問題があります。それはまったく動かないようです。これはリダイレクトしない理由だろう何

Redirect 307 /index.php?view=account&task=paypal https://api.anotherdomain.com/paypal/ipn 

:ここではラインは私の.htaccessファイル内にありますか?

答えて

2

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] 

は、新しいurlに古いクエリー文字列を追加するのを避けるため、重要です。

+0

サー...あなたはスターです!ありがとうございました。 – Wasim

+0

ちょうど質問ですが、 'index.php'の前に**?**がある理由は何ですか? – Wasim

+0

@wasim /?つまり、両方のコンテキスト(htaccessとserver.config)でルールを使用できることを意味します。 – starkeen

関連する問題