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 (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 github.com/kete/http_url_validation_improved