私はphpスクリプトでそれを知っています:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
リダイレクトに従います。コマンドラインのcURLでリダイレクトを追跡する方法はありますか?
ロケーションヘッダーフラグを使用します。
curl -L <URL>
私は同様の問題を抱えていました。私はそれがコメント投稿者の一人を助けるかもしれないと信じているので私はここに私の解決策を掲載しています。
私にとって障害は、そのページにログインが必要で、それから私にjavascriptを通して新しいURLを与えてしまったことでした。これが私がしなければならなかったことです:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
J_usernameとj_passwordは、私のWebサイトのログインフォームのフィールドの名前です。あなたのWebサイトのソースを開いて、ユーザー名フィールドの「名前」とパスワードフィールドの「名前」があなたの場合にどのようなものであるかを見る必要があります。その後、私は新しいURLが埋め込まれたJavaスクリプトを含むHTMLファイルに行きます。これを解析した後、新しいURLで再送信してください。
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
前述のように、 リダイレクトに従う あなたはフラグ-L
または--location
を使うことができます:
curl -L http://www.example.com
ただし、リダイレクト数を制限したい場合は、パラメータ--max-redirs
を追加します。
--max-redirs <num>
許可されるリダイレクト追跡の最大数を設定します。
-L
、--location
が使用されている場合、このオプションはcurlが "in absurdum"の中のリダイレクトをたどらないようにするために使用できます。デフォルトでは、制限は50リダイレクトに設定されています。このオプションを-1に設定すると、無限になります。このオプションを複数回使用すると、最後のオプションが使用されます。