Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A simple ruby HTTP server that listens on 127.0.0.1:80 and redirects all requests to a specific URL.
#! /usr/bin/env ruby
require 'webrick'
require 'uri'
TARGET_URL = URI.parse "http://tommaso.pavese.me/back_to_work/"
redirect_callback = Proc.new do |request, response|
response.set_redirect WEBrick::HTTPStatus::TemporaryRedirect, TARGET_URL
end
# signal handling
trap("INT") { @server.shutdown }
trap("TERM") { @server.shutdown }
begin
@server = WEBrick::HTTPServer.new :Port => 80, :RequestCallback => redirect_callback
Process.daemon # comment this line if managed by launchd
@server.start
rescue Errno::EACCES
puts "Can't bind to port 80 without sudo"
rescue StandardError
# do nothing, then exit
ensure
@server.shutdown if @server
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment