2013-10-10 16 views
1

有誰知道是否有簡單的方法來記錄URL重定向路徑上的所有url?錄製url重定向

例如:url:(url 1)重定向到(url 2),重定向到(url 3)。

我想寫一個腳本,它接受一個輸入字符串(url 1)並返回(url 2)和(url 3)。

有沒有一個簡單的方法來做到這一點(理想情況下不使用JavaScript)?

謝謝!

+2

http://stackoverflow.com/questi ons/251532 /如何確定是否重定向 –

+0

這可能有所幫助:https://www.ruby-forum.com/topic/142745 – Linuxios

回答

0
require 'net/http' 

def redirect_tracker(url) 
    paths_array = [url] 
    code = nil 

    begin 
    response = Net::HTTP.start(URI.parse(url).host){|http| http.request Net::HTTP::Head.new(url) } 
    code = response.code.to_i 
    paths_array << url if url = response['location']   
    end while (301..303).include?(code) 

    return paths_array 
end 

redirect_tracker('http://nyti.ms/1gtu0MO') 
# => ["http://nyti.ms/1gtu0MO", "http://nytimes.com/", "http://www.nytimes.com/"] 
0

鑑於從LWP一個$response

my @request_uris; 
while ($response) { 
    unshift @request_uris, $response->request->uri; 
    $response = $response->previous; 
}