1

サーバーにSSLをセットアップしました。http サイトへの古いリクエストを https に転送する必要がありました。Apache2 の書き換え条件と書き換えルールを使用して、ブラウザでうまく機能します。しかし、私たちのパートナーの 1 つは特定の URL にリクエストを送信するサーバーを持っており、そのサイトはそれらの URL を適切に書き換えていないようです。

curl を使用してこの動作を再現しようとしています。https (curl https://......) を使用して URL リクエストを行うと、正常に動作し、期待どおりにリクエストを完了します。http を使用した URL リクエスト (つまり、curl http://.......) をリクエストすると、このページが https://..... にリダイレクトされたことを示す html テキストが返されます。ブラウザで http または https リクエストを実行すると、正しく書き換えられます。

更新: ここで、これは観察された動作の診断に過ぎないと言わなければなりません。以下のコメントに従って、リダイレクトに従うようにcurlを設定できますが、サーバーにリクエストを行っているマシン(私が対応しようとしているもの)がこの方法でリダイレクトに従うことができるとは思いません。

さらなる更新:「リダイレクト通知」が送信されたことがどこに記録されるか(Apacheログ)を誰かが知っている場合は、私に知らせてください。次に、リダイレクトされなかったリクエストを特定し、上記の「カール診断」が違法かどうかを判断できます。ありがとう!

アドバイスをいただければ幸いです。ご協力いただきありがとうございます。説明が必要な場合、または Apache の構成や提供すべき詳細な診断がある場合はお知らせください。

4

1 に答える 1

1

(HTTP)リダイレクトに従うようにcURLに指示する必要があります(これはデフォルトで無効になっています)。-LコマンドラインからcURLを呼び出す場合は、オプションを渡すことでこれを行うことができます。たとえば、PHPから呼び出す場合はCURLOPT_FOLLOWLOCATION、関数を使用してヘッダーを設定しcurl_setoptます。

于 2012-05-22T20:10:43.833 に答える