2013-08-27 8 views
301

とリダイレクトを追跡する方法はありますが、phpスクリプト内:私が知っているコマンドラインのcURL

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

はリダイレクトに従います。コマンドラインcURLでリダイレクトに従う方法はありますか?

+9

とここに上陸した:これを解析した後、単に新しいURLに再送信してください。ありがとう。 – dchayka

答えて

515

ロケーションヘッダフラグを使用:

curl -L <URL>

+1

これは、Googleでスプレッドシートにアクセスするための認証では機能しません。 :/ – fatuhoku

+7

'man curl':"認証を使用すると、curlはその資格情報を最初のホストに送信するだけです<...> --location-trusted thisを変更する方法も参照してください。 – hudolejev

+11

@posit bit.lyはユーザエージェントをチェックしていますが、 '--user-agent'または' -A'フラグを使ってスプーフィングすることができます –

18

私は同様の問題がありました。私は解説者の1人を助けるかもしれないと信じているので、私はここに私のソリューションを掲載しています。

私にとっては、ページにログインする必要があり、JavaScriptを使用して新しいURLを渡したという障害がありました。ここで私がしなければならなかったものです:j_usernameとj_passwordという私のウェ​​ブサイトのログイン・フォームのフィールドの名前であることを

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>

注意。ウェブサイトのソースを開いて、ユーザー名フィールドの「名前」とパスワードフィールドの「名前」が何であるかを確認する必要があります。 その後、新しいURLが埋め込まれたJavaスクリプトを使用してhtmlファイルに移動します。私はPHPソリューションを探していました

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>

関連する問題