我编写了一段 Ruby 代码,用于跟踪一系列潜在的重定向,直到到达最终 URL:
def self.obtain_final_url_in_chain url
logger.debug "Following '#{url}'"
uri = URI url
http = Net::HTTP.start uri.host, uri.port
response = http.request_head url
case response.code
when "301"
obtain_final_url_in_chain response['location']
when "302"
obtain_final_url_in_chain response['location']
else
url
end
end
您obtain_final_url_in_chain
使用 url 调用,它最终应该返回最终的 url。
我正在尝试使用此 URL: http: //feeds.5by5.tv/master
基于http://web-sniffer.net/这应该被重定向到http://5by5.tv/rss作为 301 重定向的结果。相反,虽然我得到了http://feeds.5by5.tv/master的 404 。
上面的代码为其他 URL 返回 200(例如http://feeds.feedburner.com/5by5video)。
请问有谁知道为什么会这样?快把我逼疯了!
谢谢。