2017-02-16 11 views
2

PayPal раздражает ... если у вас есть тысячи подписчиков клиентов, которые POST IPN (мгновенные уведомления об оплате) на определенный URL ... вы никогда не сможете изменить этот URL. Если вы хотите, чтобы IPN отправили на другой URL-адрес, их совет ... сообщите всем своим клиентам отменить подписки и запустить новые после изменения URL-адреса IPN. Отлично.Apache 307 Перенаправление для перенаправления данных POST

Итак, после того, как я раскошелся, решение, которое я нашел, - это использовать перенаправление 307, которое будет не только перенаправляться на новый URL-адрес, но и переносить с ним данные POST. но у меня небольшие проблемы с этим в Apache. Кажется, он вообще не работает. Вот строка в моей .htaccess файле:

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

Что бы быть причиной этого не перенаправляет?

ответ

2

Вы не можете сопоставлять запросы с запросом с помощью директивы Redirec. Вам нужно сопоставить переменную% {QUERY_STRING}, используя mod-rewrite. Следующее правило делает то, что вы хотите:

RewriteEngine on 

RewriteCond %{QUERY_STRING} ^view=account&task=paypal$ [NC] 
RewriteRule ^/?index\.php$ http://example.com/paypal/? [R=307,L] 

? в конце адреса URL-адреса важны, поскольку он позволяет не добавлять старые запросы к новому URL-адресу.

+0

Сэр ... вы - звезда! Спасибо. – Wasim

+0

Просто вопрос, в чем причина **? ** перед 'index.php'? – Wasim

+0

@wasim /? означает, что правило доступно для использования в обоих контекстах (htaccess и server.config). – starkeen