A variant of HTTP URL Validation is a Rails plugin that allows you to validate a URL entered in a form. It validates if the URL exists by hitting it with a HEAD request (and the improvements include retrying with other variants until it fails decisively).
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
rails
test
.gitignore
MIT-LICENSE
README
Rakefile
VERSION

README

HTTP URL Validation Plugin Improved
by Erik Gregg, Walter McGinnis, Kieran Pilkington

This work is based on Erik's work, but mainly refined for the Kete application (http://kete.net.nz).

Inspired by HTTP URL Validation Plugin by C. Carneiro Jr.
========================

HTTP URL Validation Improved is a Rails gem that allows you to validate a URL 
entered in a form. It validates if the URL exists by hitting it with a HEAD 
request.

The improved version includes retries for common patterns when the head request is refused before giving a failure notice.

It also looks up a SITE_URL constant to the user agent in the headers.

There's also the option to also check that the URL returns content of 
a specified type. Here’s how you can use it your model:

Check for content type:
  validates_http_url :url, :content_type => "text/html"

Do not check for content type, just make sure the site is accessible:
  validates_http_url :website

Make sure there is a DNS entry for a domain
  validates_http_domain :domain		
# Domain must be in 'www.site.com' for or 'site.com' form.  No http://, no path.

This example will make sure the value entered for the URL field points to a 
publicly accessible HTML page, and the photo field points to an image:
  validates_http_url :image_url, :content_type => "image"
# :content_type checks for a matching substring, so any image will validate

========================

Bug reports and feedback are always welcome. 

Please report them via http://github.com/kete/http_url_validation_improved