# File lib/mechanize/http/agent.rb, line 857
  def response_redirect response, method, page, redirects, referer = current_page
    case @redirect_ok
    when true, :all
      # shortcut
    when false, nil
      return page
    when :permanent
      return page unless Net::HTTPMovedPermanently === response
    end

    log.info("follow redirect to: #{response['Location']}") if log

    raise Mechanize::RedirectLimitReachedError.new(page, redirects) if
      redirects + 1 > @redirection_limit

    redirect_method = method == :head ? :head : :get

    @history.push(page, page.uri)
    new_uri = resolve response['Location'].to_s, page

    fetch new_uri, redirect_method, {}, [], referer, redirects + 1
  end