diff options
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php')
-rw-r--r-- | lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php b/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php index 573b42c9c..f7fb1209b 100644 --- a/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php +++ b/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php @@ -24,9 +24,13 @@ class HTMLPurifier_AttrTransform_Nofollow extends HTMLPurifier_AttrTransform $url = $this->parser->parse($attr['href']); $scheme = $url->getSchemeObj($config, $context); - if (!is_null($url->host) && $scheme !== false && $scheme->browsable) { + if ($scheme->browsable && !$url->isLocal($config, $context)) { if (isset($attr['rel'])) { - $attr['rel'] .= ' nofollow'; + $rels = explode(' ', $attr); + if (!in_array('nofollow', $rels)) { + $rels[] = 'nofollow'; + } + $attr['rel'] = implode(' ', $rels); } else { $attr['rel'] = 'nofollow'; } |