我正在将客户重定向到另一个域 - 在收到 Paypal 付款后。 我正在使用这个 PHP 代码:
<?php
header("Location: https://www.domain_example_2.com");
?>
它似乎在大多数设备上都能正常工作。 但是 iPhone 上的一些人报告了这个错误:
“错误定向的请求,因为请求的主机与用于此连接的服务器名称指示 (SNI) 不匹配,客户端需要为此请求建立新连接”
接收 Paypal 交易确认PDT的域是 www.domain_example_1.com 它获取详细信息然后将用户发送到另一个域 www.domain_example_2.com 登录。
它在其他设备上工作正常。
域在同一个多 SANS 下托管在 godaddy 上。
1) 是什么导致了这个错误?
2) 最简单的解决方案是什么?
我已经阅读了一些关于将多 SANS 作为一个问题并为域获取单独证书的想法。还要在 Godaddy 方面更改设置。
如果是 PHP 重定向 - 是否有其他方法不会触发此错误?
我想使用一个域来处理 PDT 交易 - 我希望在交易后将客户发送到多个其他域。
我不想拥有多个 paypal 帐户 - 因为 paypal 只允许一个 PDT URL。
我不认为这个错误与 Paypal 有任何关系。 但似乎只影响 iphone。
最佳答案
我还阅读了一些问题,因为问题似乎只有在满足多个条件时才会发生,因此无法说出是哪个问题造成的。但我会说
1) what is causing this error?
你在 Paypal 之前的最后一个请求的连接持久性
2) what is the easiest solution?
不要保持这种联系。如果您知道在进入 Paypal 之前总是调用哪个页面,您可以添加一个请求关闭连接的标题,例如:
header("Connection: Close");
或者尝试发送带有代码的 JavaScript,强制浏览器重定向而不是 302 位置。只有当 User-Agent 是 iPhone 时才能发送此 JavaScript,并为其他人保留正常的 302 Location。注意我没有尝试,我宁愿关闭连接也不愿这样做。
关于PHP 重定向 - (SNI) 错误定向请求客户端需要一个新的连接 - 主机与服务器名称指示不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58848050/