       type is 'string' and $el.is skipRouting
 
     # Handle external links.
-    internal = not isAnchor or el.hostname in [location.hostname, '']
+    link = {
+      target: $el.attr('target')
+      rel: $el.attr('rel')
+      protocol: el.protocol
+      hostname: el.hostname
+    }
+    internal = not (isAnchor and @isExternalLink link)
     unless internal
       if @settings.openExternalToBlank
         # Open external links normally in a new tab.

    if @settings.routeLinks
      $(document).off 'click', @settings.routeLinks

  # Handle all clicks on A elements and try to route them internally.
  openLink: (event) =>
    return if utils.modifierKeyPressed(event)

      # Exclude fragment links.
      href.charAt(0) is '#'

    # Apply skipRouting option.
    skipRouting = @settings.skipRouting
    type = typeof skipRouting
