diff --git a/clientside_validation.js b/clientside_validation.js
index aca6cc8..549bdb2 100644
--- a/clientside_validation.js
+++ b/clientside_validation.js
@@ -1264,6 +1264,25 @@
     }, jQuery.format('Please fill in at least on of the fields'));
 
     // Support for phone
+    jQuery.validator.addMethod("drupalURL", function(value, element) {
+      var result = false;
+      jQuery.ajax({
+        'url': Drupal.settings.basePath + 'clientside_validation/drupalURL',
+        'type': "POST",
+        'data': {
+          'value': value
+        },
+        'dataType': 'json',
+        'async': false,
+        'success': function(res){
+          result = res;
+        }
+      });
+      return result.result;
+
+    }, jQuery.format('Please fill in a valid url'));
+
+    // Support for phone
     jQuery.validator.addMethod("phone", function(value, element, param) {
       var country_code = param;
       var result = false;
diff --git a/clientside_validation.module b/clientside_validation.module
index 99fefce..50353d7 100644
--- a/clientside_validation.module
+++ b/clientside_validation.module
@@ -172,6 +172,14 @@ function clientside_validation_menu() {
     'access arguments' => array('access content'),
     'type' => MENU_CALLBACK,
   );
+
+  $items['clientside_validation/drupalURL'] = array(
+    'title' => 'Clientside validation validate url callback',
+    'page callback' => '_clientside_validation_url_validation_callback',
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+  );
+
   return $items;
 }
 
@@ -1569,3 +1577,32 @@ function clientside_validation_library_alter(&$libraries, $module) {
     $libraries['jquery.form']['version'] = '3.09';
   }
 }
+
+/**
+ * Check that a path is valid and accessible for internal and aliased paths, also if the path is an 
+ * external url, it is validated according to RFC 2396.
+ *
+ * @param $path
+ *   The path to check is valid.
+ */
+function _clientside_validation_url_validation_callback() {
+  $result = array();
+  $result['result'] = FALSE;
+  // Check if the url is valid according to RFC 2396.
+  if (filter_var($path, FILTER_VALIDATE_URL)) {
+        $result['result'] = TRUE;
+  }
+  // Checks a path exists and the current user has access to it.
+  elseif (drupal_valid_path($path)) {
+    $result['result'] = TRUE;
+  }
+  else {
+    // Check if the aliased path, exists and the current user has access to it.
+    $lookup_path = drupal_lookup_path('source', $path);
+    if (drupal_valid_path($lookup_path)) {
+      $result['result'] = TRUE;
+    }
+  }
+
+  drupal_json_output($result);
+}
