1

我刚刚在我的服务器上设置了 SSL。我希望对 http 站点的旧请求转发到 https。在具有重写条件和 Apache2 中的重写规则的浏览器中效果很好。但是,我们的一个合作伙伴有一台向某个 URL 发出请求的服务器,而该站点似乎没有正确地重写这些 URL。

我尝试使用 curl 重新创建此行为。当我使用 https(即 curl https://......)发出 url 请求时,它可以正常工作并按预期完成请求。当我使用 http(即 curl http://.......)发出 url 请求时,它返回 html 文本,说明此页面已被重定向到 https://.....。当我在浏览器中执行 http 或 https 请求时,它会正确重写。

更新:我应该在这里说这仅仅是对观察到的行为的诊断。根据下面的评论,您可以将 curl 设置为跟随重定向,但我不认为向服务器发出请求(我试图适应)的机器能够以这种方式跟随重定向。

进一步更新:如果有人知道发送“重定向通知”的位置(在 apache 日志中),请告诉我。然后我将能够判断哪些请求没有被重定向,并且能够判断上面的“卷曲诊断”是否非法。谢谢!

任何建议表示赞赏,并感谢您的所有帮助。如果您需要任何说明,或者是否有任何 Apache 配置或我应该提供的进一步诊断,请告诉我。

4

1 回答 1

1

您必须告诉 cURL 遵循 (HTTP) 重定向(默认情况下禁用)。-L如果您通过命令行调用 cURL,则可以通过将选项传递给它来执行此操作。例如,如果您从 PHP 调用它,您可以CURLOPT_FOLLOWLOCATION通过curl_setopt函数设置标头。

于 2012-05-22T20:10:43.833 回答