3

ここで読んだように、リダイレクトは で簡単にオフにできます--max-redirect 0。しかし、良いリダイレクトと悪いリダイレクトの 2 種類のリダイレクトがある場合はどうでしょうか。

私の場合、良いリダイレクトは次のとおりです。

http://someaddres.com/888.html -> http://someaddres.com/some-string-in-url-describing-page.html

悪いリダイレクトは次のとおりです。

http://someaddres.com/555.html -> http://someaddres.com/

適切なリダイレクトのみを許可しないようにするにはどうすればよいですか?

4

2 に答える 2

2

頭のてっぺんから考えることができる唯一の方法は、あなたが言ったようにリダイレクトをオフにしてから、応答を解析することです(sedまたはを使用することをお勧めしgrepますが、他のオプションがあると確信しています)リダイレクトリクエストを探します. --server-responseリダイレクトに使用される方法によっては、ヘッダーを取得するためにパラメーターが必要になる場合があります。見つかった場合は、リダイレクト ターゲットに対して新しい wget を実行します (リダイレクト先でない場合を除きます)。

于 2012-08-23T09:05:15.703 に答える
1

@ Thor84noが言ったように、1つのソリューションで応答を解析できます。これは私のものです:

REDIRECTED_TO=`wget --max-redirect 0 $ADDRESS 2>&1 | grep "Location" | sed 's|.*\(http://.*/.*\) .*|\1|'`

if [ "$REDIRECTED_TO" != "$BAD_REDIRECTION" ]; then wget $REDIRECTED_TO; fi
于 2012-08-23T09:25:32.243 に答える