diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb
index c685dacae4b014b31010e1c3748a42e7855149e9..a7c9de576bd9884e68ada0963e8d3f6d2bb957b9 100644
--- a/Library/Homebrew/dev-cmd/audit.rb
+++ b/Library/Homebrew/dev-cmd/audit.rb
@@ -1490,16 +1490,18 @@ class ResourceAuditor
 
     return unless @online
     urls.each do |url|
-      if url.start_with?("git") || url.end_with?(".git")
-        unless Utils.git_remote_exists url
-          problem "The URL #{url} is not a valid git URL"
-        end
-      elsif url.start_with? "http", "ftp"
+      strategy = DownloadStrategyDetector.detect(url)
+      if strategy <= CurlDownloadStrategy
+        problem url
         status_code = FormulaAuditor.url_status_code url
         unless status_code.start_with? "2"
           problem "The URL #{url} is not reachable (HTTP status code #{status_code})"
         end
-      elsif url.start_with? "svn"
+      elsif strategy <= GitDownloadStrategy
+        unless Utils.git_remote_exists url
+          problem "The URL #{url} is not a valid git URL"
+        end
+      elsif strategy <= SubversionDownloadStrategy
         unless Utils.svn_remote_exists url
           problem "The URL #{url} is not a valid svn URL"
         end